gASVJAABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIwhbW9kdWxlLWV0aGVyZXVtLm11aXJfZ2xhY2llci5zcGVjlGGMB2NsYXNzZXOUXZSMBW5hbWVzlF2UjAhkdXBuYW1lc5RdlIwIYmFja3JlZnOUXZSMBWlzbW9klIh1jAd0YWduYW1llGgJjAZzb3VyY2WUjGIvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci9zcGVjL2luZGV4LnJzdJSMBGxpbmWUSwGMBnBhcmVudJRoA4wJX2RvY3VtZW50lGgDdWKMD3NwaGlueC5hZGRub2Rlc5SMBWluZGV4lJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UKIwEcGFpcpSMIm1vZHVsZTsgZXRoZXJldW0ubXVpcl9nbGFjaWVyLnNwZWOUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMFkV0aGVyZXVtIFNwZWNpZmljYXRpb26UaAddlGgAjARUZXh0lJOUjBZFdGhlcmV1bSBTcGVjaWZpY2F0aW9ulIWUgZR9lChoBWgGaCBoOmghaANoHYxcL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpLyA9PiBkb2MvZGlmZnOUaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sEaCBoNWghaAN1YmgAjAV0b3BpY5STlCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMEVRhYmxlIG9mIENvbnRlbnRzlGgHXZRoP4wRVGFibGUgb2YgQ29udGVu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QwUAAGgdjHMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci9zcGVjL2luZGV4LnJzdDo1Njo8YXV0b3N1bW1hcnk+lGgfSwBoIGr7BQAAaCFoA3VialMFAAApgZR9lChoBVgVBQAACgoKCmFwcGx5X2ZvcmsKClRyYW5zZm9ybXMgdGhlIHN0YXRlIGZyb20gdGhlIHByZXZpb3VzIGhhcmQgZm9yayAob2xkKSBpbnRvIHRoZSBibG9jawoKZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcwoKT2J0YWluIHRoZSBsaXN0IG9mIGhhc2hlcyBvZiB0aGUgcHJldmlvdXMgMjU2IGJsb2NrcyBpbiBvcmRlciBvZgoKc3RhdGVfdHJhbnNpdGlvbgoKQXR0ZW1wdHMgdG8gYXBwbHkgYSBibG9jayB0byBhbiBleGlzdGluZyBibG9jayBjaGFpbi4KCnZhbGlkYXRlX2hlYWRlcgoKVmVyaWZpZXMgYSBibG9jayBoZWFkZXIuCgpnZW5lcmF0ZV9oZWFkZXJfaGFzaF9mb3JfcG93CgpHZW5lcmF0ZSBybHAgaGFzaCBvZiB0aGUgaGVhZGVyIHdoaWNoIGlzIHRvIGJlIHVzZWQgZm9yIFByb29mLW9mLVdvcmsKCnZhbGlkYXRlX3Byb29mX29mX3dvcmsKClZhbGlkYXRlcyB0aGUgUHJvb2Ygb2YgV29yayBjb25zdHJhaW50cy4KCmFwcGx5X2JvZHkKCkV4ZWN1dGVzIGEgYmxvY2suCgp2YWxpZGF0ZV9vbW1lcnMKClZhbGlkYXRlcyB0aGUgb21tZXJzIG1lbnRpb25lZCBpbiB0aGUgYmxvY2suCgpwYXlfcmV3YXJkcwoKUGF5IHJld2FyZHMgdG8gdGhlIGJsb2NrIG1pbmVyIGFzIHdlbGwgYXMgdGhlIG9tbWVycyBtaW5lcnMuCgpwcm9jZXNzX3RyYW5zYWN0aW9uCgpFeGVjdXRlIGEgdHJhbnNhY3Rpb24gYWdhaW5zdCB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQuCgp2YWxpZGF0ZV90cmFuc2FjdGlvbgoKVmVyaWZpZXMgYSB0cmFuc2FjdGlvbi4KCmNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdAoKQ2FsY3VsYXRlcyB0aGUgZ2FzIHRoYXQgaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQuCgpyZWNvdmVyX3NlbmRlcgoKRXh0cmFjdHMgdGhlIHNlbmRlciBhZGRyZXNzIGZyb20gYSB0cmFuc2FjdGlvbi4KCnNpZ25pbmdfaGFzaF9wcmUxNTUKCkNvbXB1dGUgdGhlIGhhc2ggb2YgYSB0cmFuc2FjdGlvbiB1c2VkIGluIGEgbGVnYWN5IChwcmUgRUlQIDE1NSkgc2lnbmF0dXJlLgoKc2lnbmluZ19oYXNoXzE1NQoKQ29tcHV0ZSB0aGUgaGFzaCBvZiBhIHRyYW5zYWN0aW9uIHVzZWQgaW4gYSBFSVAgMTU1IHNpZ25hdHVyZS4KCmNvbXB1dGVfaGVhZGVyX2hhc2gKCkNvbXB1dGVzIHRoZSBoYXNoIG9mIGEgYmxvY2sgaGVhZGVyLgoKY2hlY2tfZ2FzX2xpbWl0CgpWYWxpZGF0ZXMgdGhlIGdhcyBsaW1pdCBmb3IgYSBibG9jay4KCmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5CgpDb21wdXRlcyBkaWZmaWN1bHR5IG9mIGEgYmxvY2sgdXNpbmcgaXRzIGhlYWRlciBhbmQgcGFyZW50IGhlYWRlci6UaAddlGpZBQAAKYGUfZQoaAVoBmgHXZRqXgUAACmBlH2UKGgFaAZoB12UKGpjBQAAKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhjb2x3aWR0aJRLCnVoHGpiBQAAaB1oRGgfSwBoIGoeBgAAaCFoA3ViamMFAAApgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGNvbHdpZHRolEtadWgcamIFAABoHWhEaB9LAGggah4GAABoIWgDdWJqeQUAACmBlH2UKGgFaAZoB12UKGp+BQAAKYGUfZQoaAVoBmgHXZQoaoMFAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMOTpvYmo6YGFwcGx5X2ZvcmsgPGV0aGVyZXVtLm11aXJfZ2xhY2llci5zcGVjLmFwcGx5X2Zvcms+YJRoB12UaG4pgZR9lChoBWgGaAddlGqPBQAAKYGUfZQoaAVqQAYAAGgHXZRoP4wKYXBwbHlfZm9ya5SFlIGUfZQoaAVoBmggakUGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGqbBQAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcao4FAABoHU5oH05oIGpCBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjCVldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5hcHBseV9mb3JrlIwIcmVmdGl0bGWUjCVldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5hcHBseV9mb3JrlHVoHGhtaB1OaB9OaCBqPgYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjHMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci9zcGVjL2luZGV4LnJzdDo1Njo8YXV0b3N1bW1hcnk+lGgfSwFoIGo7BgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqCBQAAaB1OaB9OaCBqOAYAAHViaoMFAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMR1RyYW5zZm9ybXMgdGhlIHN0YXRlIGZyb20gdGhlIHByZXZpb3VzIGhhcmQgZm9yayAoYG9sZGApIGludG8gdGhlIGJsb2NrlGgHXZQoaD+MMlRyYW5zZm9ybXMgdGhlIHN0YXRlIGZyb20gdGhlIHByZXZpb3VzIGhhcmQgZm9yayAolIWUgZR9lChoBWgGaCBqbwYAAGghaANoHWhEaB9LAHViaACMD3RpdGxlX3JlZmVyZW5jZZSTlCmBlH2UKGgFjAVgb2xkYJRoB12UaD+MA29sZJSFlIGUfZQoaAVoBmggankGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcancGAABoHU5oH05oIGpvBgAAdWJoP4wQKSBpbnRvIHRoZSBibG9ja5SFlIGUfZQoaAVoBmggam8GAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxzL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqbAYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqggUAAGgdTmgfTmggajgGAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcan0FAABoHWhEaB9LAGggajUGAABoIWgDdWJqfgUAACmBlH2UKGgFaAZoB12UKGqDBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFc6b2JqOmBnZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzIDxldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5nZXRfbGFzdF8yNTZfYmxvY2tfaGFzaGVzPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRqjwUAACmBlH2UKGgFaqYGAABoB12UaD+MGWdldF9sYXN0XzI1Nl9ibG9ja19oYXNoZXOUhZSBlH2UKGgFaAZoIGqrBgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqmwUAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGqOBQAAaB1OaB9OaCBqqAYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw0ZXRoZXJldW0ubXVpcl9nbGFjaWVyLnNwZWMuZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlc5SMCHJlZnRpdGxllIw0ZXRoZXJldW0ubXVpcl9nbGFjaWVyLnNwZWMuZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlc5R1aBxobWgdTmgfTmggaqQGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxzL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqoQYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqggUAAGgdTmgfTmggap4GAAB1YmqDBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjEBPYnRhaW4gdGhlIGxpc3Qgb2YgaGFzaGVzIG9mIHRoZSBwcmV2aW91cyAyNTYgYmxvY2tzIGluIG9yZGVyIG9mlGgHXZRoP4xAT2J0YWluIHRoZSBsaXN0IG9mIGhhc2hlcyBvZiB0aGUgcHJldmlvdXMgMjU2IGJsb2NrcyBpbiBvcmRlciBvZpSFlIGUfZQoaAVoBmggatUGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxzL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq0gYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqggUAAGgdTmgfTmggap4GAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcan0FAABoHWhEaB9LAGggajUGAABoIWgDdWJqfgUAACmBlH2UKGgFaAZoB12UKGqDBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjEU6b2JqOmBzdGF0ZV90cmFuc2l0aW9uIDxldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5zdGF0ZV90cmFuc2l0aW9uPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRqjwUAACmBlH2UKGgFavgGAABoB12UaD+MEHN0YXRlX3RyYW5zaXRpb26UhZSBlH2UKGgFaAZoIGr9BgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqmwUAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGqOBQAAaB1OaB9OaCBq+gYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIwrZXRoZXJldW0ubXVpcl9nbGFjaWVyLnNwZWMuc3RhdGVfdHJhbnNpdGlvbpSMCHJlZnRpdGxllIwrZXRoZXJldW0ubXVpcl9nbGFjaWVyLnNwZWMuc3RhdGVfdHJhbnNpdGlvbpR1aBxobWgdTmgfTmggavYGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxzL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq8wYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqggUAAGgdTmgfTmggavAGAAB1YmqDBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDVBdHRlbXB0cyB0byBhcHBseSBhIGJsb2NrIHRvIGFuIGV4aXN0aW5nIGJsb2NrIGNoYWluLpRoB12UaD+MNUF0dGVtcHRzIHRvIGFwcGx5IGEgYmxvY2sgdG8gYW4gZXhpc3RpbmcgYmxvY2sgY2hhaW4ulIWUgZR9lChoBWgGaCBqJwcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjHMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci9zcGVjL2luZGV4LnJzdDo1Njo8YXV0b3N1bW1hcnk+lGgfSwFoIGokBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqCBQAAaB1OaB9OaCBq8AYAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqfQUAAGgdaERoH0sAaCBqNQYAAGghaAN1Ymp+BQAAKYGUfZQoaAVoBmgHXZQoaoMFAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMQzpvYmo6YHZhbGlkYXRlX2hlYWRlciA8ZXRoZXJldW0ubXVpcl9nbGFjaWVyLnNwZWMudmFsaWRhdGVfaGVhZGVyPmCUaAdd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XZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDNldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5jYWxjdWxhdGVfaW50cmluc2ljX2Nvc3SUjAhyZWZ0aXRsZZSMM2V0aGVyZXVtLm11aXJfZ2xhY2llci5zcGVjLmNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdJR1aBxobWgdTmgfTmggatgJAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxzL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq1QkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqggUAAGgdTmgfTmggatIJAAB1YmqDBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjD9DYWxjdWxhdGVzIHRoZSBnYXMgdGhhdCBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaXMgc3RhcnRlZC6UaAddlGg/jD9DYWxjdWxhdGVzIHRoZSBnYXMgdGhhdCBpcyBjaGFyZ2VkIGJlZm9yZSBleGVjdXRpb24gaXMgc3RhcnRlZC6UhZSBlH2UKGgFaAZoIGoJCgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mcy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vbXVpcl9nbGFjaWVyL3NwZWMvaW5kZXgucnN0OjU2OjxhdXRvc3VtbWFyeT6UaB9LAWggagYKAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaoIFAABoHU5oH05oIGrSCQAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGp9BQAAaB1oRGgfSwBoIGo1BgAAaCFoA3Vian4FAAApgZR9lChoBWgGaAddlChqgwUAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxBOm9iajpgcmVjb3Zlcl9zZW5kZXIgPGV0aGVyZXVtLm11aXJfZ2xhY2llci5zcGVjLnJlY292ZXJfc2VuZGVyPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRqjwUAACmBlH2UKGgFaiwKAABoB12UaD+MDnJlY292ZXJfc2VuZGVylIWUgZR9lChoBWgGaCBqMQoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoapsFAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxqjgUAAGgdTmgfTmggai4KAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMKWV0aGVyZXVtLm11aXJfZ2xhY2llci5zcGVjLnJlY292ZXJfc2VuZGVylIwIcmVmdGl0bGWUjClldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5yZWNvdmVyX3NlbmRlcpR1aBxobWgdTmgfTmggaioKAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYxzL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy9pbmRleC5yc3Q6NTY6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqJwoAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqggUAAGgdTmgfTmggaiQKAAB1YmqDBQAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjC9FeHRyYWN0cyB0aGUgc2VuZGVyIGFkZHJlc3MgZnJvbSBhIHRyYW5zYWN0aW9uLpRoB12UaD+ML0V4dHJhY3RzIHRoZSBzZW5kZXIgYWRkcmVzcyBmcm9tIGEgdHJhbnNhY3Rpb24ulIWUgZR9lChoBWgGaCBqWwoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjHMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL211aXJfZ2xhY2llci9zcGVjL2lu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dGVzdGVkIHJpZ29yb3VzbHkKICAgIGlmIGxlbihyZWNlbnRfYmxvY2tzKSA9PSAwOgogICAgICAgIHJldHVybiBbXQoKICAgIHJlY2VudF9ibG9ja19oYXNoZXMgPSBbXQoKICAgIGZvciBibG9jayBpbiByZWNlbnRfYmxvY2tzOgogICAgICAgIHByZXZfYmxvY2tfaGFzaCA9IGJsb2NrLmhlYWRlci5wYXJlbnRfaGFzaAogICAgICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKHByZXZfYmxvY2tfaGFzaCkKCiAgICAjIFdlIGFyZSBjb21wdXRpbmcgdGhlIGhhc2ggb25seSBmb3IgdGhlIG1vc3QgcmVjZW50IGJsb2NrIGFuZCBub3QgZm9yCiAgICAjIHRoZSByZXN0IG9mIHRoZSBibG9ja3MgYXMgdGhleSBoYXZlIHN1Y2Nlc3NvcnMgd2hpY2ggaGF2ZSB0aGUgaGFzaCBvZgogICAgIyB0aGUgY3VycmVudCBibG9jayBhcyBwYXJlbnQgaGFzaC4KICAgIG1vc3RfcmVjZW50X2Jsb2NrX2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShyZWNlbnRfYmxvY2tzWy0xXS5oZWFkZXIpKQogICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQobW9zdF9yZWNlbnRfYmxvY2tfaGFzaCkKCiAgICByZXR1cm4gcmVjZW50X2Jsb2NrX2hhc2hlcwqUaAddlGg/WN8CAABkZWYgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbjogQmxvY2tDaGFpbikgLT4gTGlzdFtIYXNoMzJdOgogICAgcmVjZW50X2Jsb2NrcyA9IGNoYWluLmJsb2Nrc1stMjU1Ol0KICAgICMgVE9ETzogVGhpcyBmdW5jdGlvbiBoYXMgbm90IGJlZW4gdGVzdGVkIHJpZ29yb3VzbHkKICAgIGlmIGxlbihyZWNlbnRfYmxvY2tzKSA9PSAwOgogICAgICAgIHJldHVybiBbXQoKICAgIHJlY2VudF9ibG9ja19oYXNoZXMgPSBbXQoKICAgIGZvciBibG9jayBpbiByZWNlbnRfYmxvY2tzOgogICAgICAgIHByZXZfYmxvY2tfaGFzaCA9IGJsb2NrLmhlYWRlci5wYXJlbnRfaGFzaAogICAgICAgIHJlY2VudF9ibG9ja19oYXNoZXMuYXBwZW5kKHByZXZfYmxvY2tfaGFzaCkKCiAgICAjIFdlIGFyZSBjb21wdXRpbmcgdGhlIGhhc2ggb25seSBmb3IgdGhlIG1vc3QgcmVjZW50IGJsb2NrIGFuZCBub3QgZm9yCiAgICAjIHRoZSByZXN0IG9mIHRoZSBibG9ja3MgYXMgdGhleSBoYXZlIHN1Y2Nlc3NvcnMgd2hpY2ggaGF2ZSB0aGUgaGFzaCBvZgogICAgIyB0aGUgY3VycmVudCBibG9jayBhcyBwYXJlbnQgaGFzaC4KICAgIG1vc3RfcmVjZW50X2Jsb2NrX2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShyZWNlbnRfYmxvY2tzWy0xXS5oZWFkZXIpKQogICAgcmVjZW50X2Jsb2NrX2hhc2hlcy5hcHBlbmQobW9zdF9yZWNlbnRfYmxvY2tfaGFzaCkKCiAgICByZXR1cm4gcmVjZW50X2Jsb2NrX2hhc2hlcwqUhZSBlH2UKGgFaAZoIGoNFwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxTL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbXVpcl9nbGFjaWVyL3NwZWMucHmUjAl4bWw6c3BhY2WUahkFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqpg8AAEsBc4wHbGluZW5vc5SJdWgcao4PAABoHWgeaB9L/WggaqEVAAB1YmVoDn2UKGgQXZRqggIAAGFoE12UaBVdlIwZZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlc5RhaBddlGgZXZR1aBxoM2gdaB5oH0vnaCBqGQ8AAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwQc3RhdGVfdHJhbnNpdGlvbpRoB12UaD+MEHN0YXRlX3RyYW5zaXRpb26UhZSBlH2UKGgFaAZoIGouFwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2U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cmVudCBibG9jay4gVGhlCmluZm9ybWF0aW9uIGluIHRoZSBibG9ja+KAmXMgaGVhZGVyIG11c3QgYWxzbyBtYXRjaCB0aGUgY29ycmVzcG9uZGluZwppbmZvcm1hdGlvbiBpbiB0aGUgYmxvY2sulIWUgZR9lChoBWgGaCBqtBcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00KAWggaqMXAAB1YmhpKYGUfZQoaAWM/FRvIGltcGxlbWVudCBFdGhlcmV1bSwgaW4gdGhlb3J5IGNsaWVudHMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gc3RvcmUgdGhlCm1vc3QgcmVjZW50IDI1NSBibG9ja3Mgb2YgdGhlIGNoYWluIHNpbmNlIGFzIGZhciBhcyBleGVjdXRpb24gaXMKY29uY2VybmVkLCBvbmx5IHRob3NlIGJsb2NrcyBhcmUgYWNjZXNzZWQuIFByYWN0aWNhbGx5LCBob3dldmVyLCBjbGllbnRzCnNob3VsZCBzdG9yZSBtb3JlIGJsb2NrcyB0byBoYW5kbGUgcmVvcmdzLpRoB12UaD+M/FRvIGltcGxlbWVudCBFdGhlcmV1bSwgaW4gdGhlb3J5IGNsaWVudHMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gc3RvcmUgdGhlCm1vc3QgcmVjZW50IDI1NSBibG9ja3Mgb2YgdGhlIGNoYWluIHNpbmNlIGFzIGZhciBhcyBleGVjdXRpb24gaXMKY29uY2VybmVkLCBvbmx5IHRob3NlIGJsb2NrcyBhcmUgYWNjZXNzZWQuIFByYWN0aWNhbGx5LCBob3dldmVyLCBjbGllbnRzCnNob3VsZCBzdG9yZSBtb3JlIGJsb2NrcyB0byBoYW5kbGUgcmVvcmdzLpSFlIGUfZQoaAVoBmggasIXAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NEAFoIGqjFwAAdWJqqxQAACmBlH2UKGgFaAZoB12UarAUAAApgZR9lChoBWgGaAddlChqtRQAACmBlH2UKGgFjApQYXJhbWV0ZXJzlGgHXZRoP4wKUGFyYW1ldGVyc5SFlIGUfZQoaAVoBmggatYX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b2NrX2hhc2hlcyhjaGFpbiksCiAgICAgICAgYmxvY2suaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGJsb2NrLmhlYWRlci5udW1iZXIsCiAgICAgICAgYmxvY2suaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBibG9jay5oZWFkZXIudGltZXN0YW1wLAogICAgICAgIGJsb2NrLmhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGJsb2NrLnRyYW5zYWN0aW9ucywKICAgICAgICBibG9jay5vbW1lcnMsCiAgICAgICAgY2hhaW4uY2hhaW5faWQsCiAgICApCiAgICBlbnN1cmUoZ2FzX3VzZWQgPT0gYmxvY2suaGVhZGVyLmdhc191c2VkLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUodHJhbnNhY3Rpb25zX3Jvb3QgPT0gYmxvY2suaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc3RhdGVfcm9vdChzdGF0ZSkgPT0gYmxvY2suaGVhZGVyLnN0YXRlX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShyZWNlaXB0X3Jvb3QgPT0gYmxvY2suaGVhZGVyLnJlY2VpcHRfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGJsb2NrX2xvZ3NfYmxvb20gPT0gYmxvY2suaGVhZGVyLmJsb29tLCBJbnZhbGlkQmxvY2spCgogICAgY2hhaW4uYmxvY2tzLmFwcGVuZChibG9jaykKICAgIGlmIGxlbihjaGFpbi5ibG9ja3MpID4gMjU1OgogICAgICAgICMgUmVhbCBjbGllbnRzIGhhdmUgdG8gc3RvcmUgbW9yZSBibG9ja3MgdG8gZGVhbCB3aXRoIHJlb3JncywgYnV0IHRoZQogICAgICAgICMgcHJvdG9jb2wgb25seSByZXF1aXJlcyB0aGUgbGFzdCAyNTUKICAgICAgICBjaGFpbi5ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLTI1NTpdCpRoB12UaD9YwgQAAGRlZiBzdGF0ZV90cmFuc2l0aW9uKGNoYWluOiBCbG9ja0NoYWluLCBibG9jazogQmxvY2spIC0+IE5vbmU6CiAgICBwYXJlbnRfaGVhZGVyID0gY2hhaW4uYmxvY2tzWy0xXS5oZWFkZXIKICAgIHZhbGlkYXRlX2hlYWRlcihibG9jay5oZWFkZXIsIHBhcmVudF9oZWFkZXIpCiAgICB2YWxpZGF0ZV9vbW1lcnMoYmxvY2sub21tZXJzLCBibG9jay5oZWFkZXIsIGNoYWluKQogICAgKAogICAgICAgIGdhc191c2VkLAogICAgICAgIHRyYW5zYWN0aW9uc19yb290LAogICAgICAgIHJlY2VpcHRfcm9vdCwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKSA9IGFwcGx5X2JvZHkoCiAgICAgICAgY2hhaW4uc3RhdGUsCiAgICAgICAgZ2V0X2xhc3RfMjU2X2Jsb2NrX2hhc2hlcyhjaGFpbiksCiAgICAgICAgYmxvY2suaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGJsb2NrLmhlYWRlci5udW1iZXIsCiAgICAgICAgYmxvY2suaGVhZGVyLmdhc19saW1pdCwKICAgICAgICBibG9jay5oZWFkZXIudGltZXN0YW1wLAogICAgICAgIGJsb2NrLmhlYWRlci5kaWZmaWN1bHR5LAogICAgICAgIGJsb2NrLnRyYW5zYWN0aW9ucywKICAgICAgICBibG9jay5vbW1lcnMsCiAgICAgICAgY2hhaW4uY2hhaW5faWQsCiAgICApCiAgICBlbnN1cmUoZ2FzX3VzZWQgPT0gYmxvY2suaGVhZGVyLmdhc191c2VkLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUodHJhbnNhY3Rpb25zX3Jvb3QgPT0gYmxvY2suaGVhZGVyLnRyYW5zYWN0aW9uc19yb290LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc3RhdGVfcm9vdChzdGF0ZSkgPT0gYmxvY2suaGVhZGVyLnN0YXRlX3Jvb3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShyZWNlaXB0X3Jvb3QgPT0gYmxvY2suaGVhZGVyLnJlY2VpcHRfcm9vdCwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKGJsb2NrX2xvZ3NfYmxvb20gPT0gYmxvY2su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BmgHXZQoaGkpgZR9lChoBYwYVmVyaWZpZXMgYSBibG9jayBoZWFkZXIulGgHXZRoP4wYVmVyaWZpZXMgYSBibG9jayBoZWFkZXIulIWUgZR9lChoBWgGaCBqDhkAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00mAWggagsZAAB1YmhpKYGUfZQoaAVYlAEAAEluIG9yZGVyIHRvIGNvbnNpZGVyIGEgYmxvY2sncyBoZWFkZXIgdmFsaWQsIHRoZSBsb2dpYyBmb3IgdGhlCnF1YW50aXRpZXMgaW4gdGhlIGhlYWRlciBzaG91bGQgbWF0Y2ggdGhlIGxvZ2ljIGZvciB0aGUgYmxvY2sgaXRzZWxmLgpGb3IgZXhhbXBsZSB0aGUgaGVhZGVyIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBibG9jaydzIHBhcmVudAp0aW1lc3RhbXAgYmVjYXVzZSB0aGUgYmxvY2sgd2FzIGNyZWF0ZWQgKmFmdGVyKiB0aGUgcGFyZW50IGJsb2NrLgpBZGRpdGlvbmFsbHksIHRoZSBibG9jaydzIG51bWJlciBzaG91bGQgYmUgZGlyZWN0bHkgZm9sb3dpbmcgdGhlIHBhcmVudApibG9jaydzIG51bWJlciBzaW5jZSBpdCBpcyB0aGUgbmV4dCBibG9jayBpbiB0aGUgc2VxdWVuY2UulGgHXZQoaD+M/EluIG9yZGVyIHRvIGNvbnNpZGVyIGEgYmxvY2vigJlzIGhlYWRlciB2YWxpZCwgdGhlIGxvZ2ljIGZvciB0aGUKcXVhbnRpdGllcyBpbiB0aGUgaGVhZGVyIHNob3VsZCBtYXRjaCB0aGUgbG9naWMgZm9yIHRoZSBibG9jayBpdHNlbGYuCkZvciBleGFtcGxlIHRoZSBoZWFkZXIgdGltZXN0YW1wIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIGJsb2Nr4oCZcyBwYXJlbnQKdGltZXN0YW1wIGJlY2F1c2UgdGhlIGJsb2NrIHdhcyBjcmVhdGVkIJSFlIGUfZQoaAVoBmggahwZAABoIWgDaB1oRGgfSwB1YmgAjAhlbXBoYXNpc5STlCmBlH2UKGgFjAcqYWZ0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bGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIGNoZWNrX2dhc19saW1pdChoZWFkZXIuZ2FzX2xpbWl0LCBwYXJlbnRfaGVhZGVyLmdhc19saW1pdCksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkKICAgIGVuc3VyZShoZWFkZXIucGFyZW50X2hhc2ggPT0gYmxvY2tfcGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKCiAgICB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcikKlGgHXZRoP1hjAwAAZGVmIHZhbGlkYXRlX2hlYWRlcihoZWFkZXI6IEhlYWRlciwgcGFyZW50X2hlYWRlcjogSGVhZGVyKSAtPiBOb25lOgogICAgcGFyZW50X2hhc19vbW1lcnMgPSBwYXJlbnRfaGVhZGVyLm9tbWVyc19oYXNoICE9IEVNUFRZX09NTUVSX0hBU0gKICAgIGVuc3VyZShoZWFkZXIudGltZXN0YW1wID4gcGFyZW50X2hlYWRlci50aW1lc3RhbXAsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZShoZWFkZXIubnVtYmVyID09IHBhcmVudF9oZWFkZXIubnVtYmVyICsgMSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKAogICAgICAgIGNoZWNrX2dhc19saW1pdChoZWFkZXIuZ2FzX2xpbWl0LCBwYXJlbnRfaGVhZGVyLmdhc19saW1pdCksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQogICAgZW5zdXJlKGxlbihoZWFkZXIuZXh0cmFfZGF0YSkgPD0gMzIsIEludmFsaWRCbG9jaykKCiAgICBibG9ja19kaWZmaWN1bHR5ID0gY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICAgICAgaGVhZGVyLm51bWJlciwKICAgICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIudGltZXN0YW1wLAogICAgICAgIHBhcmVudF9oZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBwYXJlbnRfaGFzX29tbWVycywKICAgICkKICAgIGVuc3VyZShoZWFkZXIuZGlmZmljdWx0eSA9PSBibG9ja19kaWZmaWN1bHR5LCBJbnZhbGlkQmxvY2spCgogICAgYmxvY2tfcGFyZW50X2hhc2ggPSBrZWNjYWsyNTYocmxwLmVuY29kZShwYXJlbnRfaGVhZGVyKSkKICAgIGVuc3VyZShoZWFkZXIucGFyZW50X2hhc2ggPT0gYmxvY2tfcGFyZW50X2hhc2gsIEludmFsaWRCbG9jaykKCiAgICB2YWxpZGF0ZV9wcm9vZl9vZl93b3JrKGhlYWRlcikKlIWUgZR9lChoBWgGaCBq0RkAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSM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ICAgICBoZWFkZXIudGltZXN0YW1wLAogICAgICAgIGhlYWRlci5leHRyYV9kYXRhLAogICAgXQoKICAgIHJldHVybiBybHAucmxwX2hhc2goaGVhZGVyX2RhdGFfd2l0aG91dF9wb3dfYXJ0ZWZhY3RzKQqUaAddlGg/WAMCAABkZWYgZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3BvdyhoZWFkZXI6IEhlYWRlcikgLT4gSGFzaDMyOgogICAgaGVhZGVyX2RhdGFfd2l0aG91dF9wb3dfYXJ0ZWZhY3RzID0gWwogICAgICAgIGhlYWRlci5wYXJlbnRfaGFzaCwKICAgICAgICBoZWFkZXIub21tZXJzX2hhc2gsCiAgICAgICAgaGVhZGVyLmNvaW5iYXNlLAogICAgICAgIGhlYWRlci5zdGF0ZV9yb290LAogICAgICAgIGhlYWRlci50cmFuc2FjdGlvbnNfcm9vdCwKICAgICAgICBoZWFkZXIucmVjZWlwdF9yb290LAogICAgICAgIGhlYWRlci5ibG9vbSwKICAgICAgICBoZWFkZXIuZGlmZmljdWx0eSwKICAgICAgICBoZWFkZXIubnVtYmVyLAogICAgICAgIGhlYWRlci5nYXNfbGltaXQsCiAgICAgICAgaGVhZGVyLmdhc191c2VkLAogICAgICAgIGhlYWRlci50aW1lc3RhbXAsCiAgICAgICAgaGVhZGVyLmV4dHJhX2RhdGEsCiAgICBdCgogICAgcmV0dXJuIHJscC5ybHBfaGFzaChoZWFkZXJfZGF0YV93aXRob3V0X3Bvd19hcnRlZmFjdHMpCpSFlIGUfZQoaAVoBmggapEbAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy5weZSMCXhtbDpzcGFjZZRqGQUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGqmDwAASwFzjAdsaW5lbm9zlIl1aBxqjg8AAGgdaB5oH01TAWgg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bmcgY2FjaGUgZm9yIGV2ZXJ5IGJsb2NrIHZhbGlkYXRpb24uCiAgICBjYWNoZSA9IGdlbmVyYXRlX2NhY2hlKGhlYWRlci5udW1iZXIpCiAgICBtaXhfZGlnZXN0LCByZXN1bHQgPSBoYXNoaW1vdG9fbGlnaHQoCiAgICAgICAgaGVhZGVyX2hhc2gsIGhlYWRlci5ub25jZSwgY2FjaGUsIGRhdGFzZXRfc2l6ZShoZWFkZXIubnVtYmVyKQogICAgKQoKICAgIGVuc3VyZShtaXhfZGlnZXN0ID09IGhlYWRlci5taXhfZGlnZXN0LCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoCiAgICAgICAgVWludC5mcm9tX2JlX2J5dGVzKHJlc3VsdCkgPD0gKFUyNTZfQ0VJTF9WQUxVRSAvLyBoZWFkZXIuZGlmZmljdWx0eSksCiAgICAgICAgSW52YWxpZEJsb2NrLAogICAgKQqUaAddlGg/WDYCAABkZWYgdmFsaWRhdGVfcHJvb2Zfb2Zfd29yayhoZWFkZXI6IEhlYWRlcikgLT4gTm9uZToKICAgIGhlYWRlcl9oYXNoID0gZ2VuZXJhdGVfaGVhZGVyX2hhc2hfZm9yX3BvdyhoZWFkZXIpCiAgICAjIFRPRE86IE1lbW9pemUgdGhpcyBzb21ld2hlcmUgYW5kIHJlYWQgZnJvbSB0aGF0IGRhdGEgaW5zdGVhZCBvZgogICAgIyBjYWxjdWxhdGluZyBjYWNoZSBmb3IgZXZlcnkgYmxvY2sgdmFsaWRhdGlvbi4KICAgIGNhY2hlID0gZ2VuZXJhdGVfY2FjaGUoaGVhZGVyLm51bWJlcikKICAgIG1peF9kaWdlc3QsIHJlc3VsdCA9IGhhc2hpbW90b19saWdodCgKICAgICAgICBoZWFkZXJfaGFzaCwgaGVhZGVyLm5vbmNlLCBjYWNoZSwgZGF0YXNldF9zaXplKGhlYWRlci5udW1iZXIpCiAgICApCgogICAgZW5zdXJlKG1peF9kaWdlc3QgPT0gaGVhZGVyLm1peF9kaWdlc3QsIEludmFsaWRCbG9jaykKICAgIGVuc3VyZSgKICAgICAgICBVaW50LmZyb21fYmVfYnl0ZXMocmVzdWx0KSA8PSAoVTI1Nl9DRUlMX1ZBTFVFIC8vIGhlYWRlci5kaWZmaWN1bHR5KSwKICAgICAgICBJbnZhbGlkQmxvY2ssCiAgICApCpSFlIGUfZQoaAVoBmggar0cAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy5weZSMCXhtbDpzcGFjZZRqGQUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGqmDwAASwFzjAdsaW5lbm9zlIl1aBxqjg8AAGgdaB5oH01rAWggaq8bAAB1YmVoDn2UKGgQXZRqCgMAAGFoE12UaBVdlIwWdmFsaWRhdGVfcHJvb2Zfb2Zfd29ya5RhaBddlGgZXZR1aBxoM2gdaB5oH01YAWggahkPAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMCmFwcGx5X2JvZHmUaAddlGg/jAphcHBseV9ib2R5lIWUgZR9lChoBWgGaCBq3hwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH01wAWggatscAABoIWgDdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVoHGgjaB1oRGgfSwBoIGrbHAAAaCFoA3ViaksPAAApgZR9lChoBWgGaAddlChqUA8AACmBlH2UKGgFjIZhcHBseV9ib2R5KHN0YXRlLCBibG9ja19oYXNoZXMsIGNvaW5iYXNlLCBibG9ja19udW1iZXIsIGJsb2NrX2dhc19saW1pdCwgYmxvY2tfdGltZSwgYmxvY2tfZGlmZmljdWx0eSwgdHJhbnNhY3Rpb25zLCBvbW1lcnMsIGNoYWluX2lkKZRoB12UKGpWDwAAKYGUfZQoaAWMCmFwcGx5X2JvZHmUaAddlGg/jAphcHBseV9ib2R5lIWUgZR9lChoBWgGaCBq/hwAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoamEPAABqYg8AAGpjDwAAamQPAABlaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqVQ8AAGgdaB5oH05oIGr6HAAAdWJqJxQAACmBlH2UKGgFjHpzdGF0ZSwgYmxvY2tfaGFzaGVzLCBjb2luYmFzZSwgYmxvY2tfbnVtYmVyLCBibG9ja19nYXNfbGltaXQsIGJsb2NrX3RpbWUsIGJsb2NrX2RpZmZpY3VsdHksIHRyYW5zYWN0aW9ucywgb21tZXJzLCBjaGFpbl9pZJRoB12UKGotFAAAKYGUfZQoaAWMBXN0YXRllGgHXZRq2xIAACmBlH2UKGgFaAZoB12UaD+MBXN0YXRllIWUgZR9lChoBWgGaCBqFR0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqPBQAAGFoFV2UaBddlGgZXZR1aBxq2hIAAGgdTmgfTmggahEdAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqLBQAAGgdTmgfTmggag0dAAB1YmotFAAAKYGUfZQoaAWMDGJsb2NrX2hhc2hlc5RoB12UatsSAAApgZR9lChoBWgGaAddlGg/jAxibG9ja19oYXNoZXOUhZSBlH2UKGgFaAZoIGotHQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGo8FAAAYWgVXZRoF12UaBldlHVoHGraEgAAaB1OaB9OaCBqKR0AAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqGQUAAHVoHGosFAAAaB1OaB9OaCBqDR0AAHViai0UAAApgZR9lChoBYwIY29pbmJhc2WUaAddlGrbEgAAKYGUfZQoaAVoBmgHXZRoP4wIY29pbmJhc2WUhZSBlH2UKGgFaAZoIGpFHQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGo8FAAAYWgVXZRoF12UaBldlHVoHGraEgAAaB1OaB9OaCBqQR0AAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqGQUAAHVoHGosFAAAaB1OaB9OaCBqDR0AAHViai0UAAApgZR9lChoBYwMYmxvY2tfbnVtYmVylGgHXZRq2xIAACmBlH2UKGgFaAZoB12UaD+MDGJsb2NrX251bWJlcpSFlIGUfZQoaAVoBmggal0dAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UajwUAABhaBVdlGgXXZRoGV2UdWgcatoSAABoHU5oH05oIGpZHQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGoZBQAAdWgcaiwUAABoHU5oH05oIGoNHQAAdWJqLRQAACmBlH2UKGgFjA9ibG9ja19nYXNfbGltaXSUaAddlGrbEgAAKYGUfZQoaAVoBmgHXZRoP4wPYmxvY2tfZ2FzX2xpbWl0lIWUgZR9lChoBWgGaCBqdR0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqPBQAAGFoFV2UaBddlGgZXZR1aBxq2hIAAGgdTmgfTmgganEdAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqLBQAAGgdTmgfTmggag0dAAB1YmotFAAAKYGUfZQoaAWMCmJsb2NrX3RpbWWUaAddlGrbEgAAKYGUfZQoaAVoBmgHXZRoP4wKYmxvY2tfdGltZZSFlIGUfZQoaAVoBmggao0dAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UajwUAABhaBVdlGgXXZRoGV2UdWgcatoSAABoHU5oH05oIGqJHQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGoZBQAAdWgcaiwUAABoHU5oH05oIGoNHQAAdWJqLRQAACmBlH2UKGgFjBBibG9ja19kaWZmaWN1bHR5lGgHXZRq2xIAACmBlH2UKGgFaAZoB12UaD+MEGJsb2NrX2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGqlHQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGo8FAAAYWgVXZRoF12UaBldlHVoHGraEgAAaB1OaB9OaCBqoR0AAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqGQUAAHVoHGosFAAAaB1OaB9OaCBqDR0AAHViai0UAAApgZR9lChoBYwMdHJhbnNhY3Rpb25zlGgHXZRq2xIAACmBlH2UKGgFaAZoB12UaD+MDHRyYW5zYWN0aW9uc5SFlIGUfZQoaAVoBmggar0dAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UajwUAABhaBVdlGgXXZRoGV2UdWgcatoSAABoHU5oH05oIGq5HQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllGoZBQAAdWgcaiwUAABoHU5oH05oIGoNHQAAdWJqLRQAACmBlH2UKGgFjAZvbW1lcnOUaAddlGrbEgAAKYGUfZQoaAVoBmgHXZRoP4wGb21tZXJzlIWUgZR9lChoBWgGaCBq1R0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqPBQAAGFoFV2UaBddlGgZXZR1aBxq2hIAAGgdTmgfTmggatEdAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqLBQAAGgdTmgfTmggag0dAAB1YmotFAAAKYGUfZQoaAWMCGNoYWluX2lklGgHXZRq2xIAACmBlH2UKGgFaAZoB12UaD+MCGNoYWluX2lklIWUgZR9lChoBWgGaCBq7R0AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqPBQAAGFoFV2UaBddlGgZXZR1aBxq2hIAAGgdTmgfTmggaukdAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqLBQAAGgdTmgfTmggag0dAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqJhQAAGgdaB5oH05oIGr6HAAAdWJlaA59lChoEF2UjCVldGhlcmV1bS5tdWlyX2dsYWNpZXIuc3BlYy5hcHBseV9ib2R5lGFoE12UKGpsDwAAam0PAACMAnB5lGpvDwAAanAPAABlaBVdlGgXXZRoGV2UjAZtb2R1bGWUanUPAACMBWNsYXNzlGgGjAhmdWxsbmFtZZRqAB0AAHVoHGpPDwAAaB1oHmgfTXMBaCBq9xwAAHViankPAAApgZR9lChoBWgGaAddlChoaSmBlH2UKGgFjBFFeGVjdXRlcyBhIGJsb2NrLpRoB12UaD+MEUV4ZWN1dGVzIGEgYmxvY2sulIWUgZR9lChoBWgGaCBqFh4AAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH012AWggahMeAAB1YmhpKYGUfZQoaAVYegEAAE1hbnkgb2YgdGhlIGNvbnRlbnRzIG9mIGEgYmxvY2sgYXJlIHN0b3JlZCBpbiBkYXRhIHN0cnVjdHVyZXMgY2FsbGVkCnRyaWVzLiBUaGVyZSBpcyBhIHRyYW5zYWN0aW9ucyB0cmllIHdoaWNoIGlzIHNpbWlsYXIgdG8gYSBsZWRnZXIgb2YgdGhlCnRyYW5zYWN0aW9ucyBzdG9yZWQgaW4gdGhlIGN1cnJlbnQgYmxvY2suIFRoZXJlIGlzIGFsc28gYSByZWNlaXB0cyB0cmllCndoaWNoIHN0b3JlcyB0aGUgcmVzdWx0cyBvZiBleGVjdXRpbmcgYSB0cmFuc2FjdGlvbiwgbGlrZSB0aGUgcG9zdCBzdGF0ZQphbmQgZ2FzIHVzZWQuIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhbmQgZXhlY3V0ZXMgdGhlIGJsb2NrIHRoYXQgaXMgdG8gYmUKYWRkZWQgdG8gdGhlIGNoYWluLpRoB12UaD9YegEAAE1hbnkgb2YgdGhlIGNvbnRlbnRzIG9mIGEgYmxvY2sgYXJlIHN0b3JlZCBpbiBkYXRhIHN0cnVjdHVyZXMgY2FsbGVkCnRyaWVzLiBUaGVyZSBpcyBhIHRyYW5zYWN0aW9ucyB0cmllIHdoaWNoIGlzIHNpbWlsYXIgdG8gYSBsZWRnZXIgb2YgdGhlCnRyYW5zYWN0aW9ucyBzdG9yZWQgaW4gdGhlIGN1cnJlbnQgYmxvY2suIFRoZXJlIGlzIGFsc28gYSByZWNlaXB0cyB0cmllCndoaWNoIHN0b3JlcyB0aGUgcmVzdWx0cyBvZiBleGVjdXRpbmcgYSB0cmFuc2FjdGlvbiwgbGlrZSB0aGUgcG9zdCBzdGF0ZQphbmQgZ2FzIHVzZWQuIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhbmQgZXhlY3V0ZXMgdGhlIGJsb2NrIHRoYXQgaXMgdG8gYmUKYWRkZWQgdG8gdGhlIGNoYWluLpSFlIGUfZQoaAVoBmggaiQeAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12U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XSA9IFRyaWUoCiAgICAgICAgc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lCiAgICApCiAgICBibG9ja19sb2dzOiBUdXBsZVtMb2csIC4uLl0gPSAoKQoKICAgIGZvciBpLCB0eCBpbiBlbnVtZXJhdGUodHJhbnNhY3Rpb25zKToKICAgICAgICB0cmllX3NldCh0cmFuc2FjdGlvbnNfdHJpZSwgcmxwLmVuY29kZShVaW50KGkpKSwgdHgpCgogICAgICAgIGVuc3VyZSh0eC5nYXMgPD0gZ2FzX2F2YWlsYWJsZSwgSW52YWxpZEJsb2NrKQogICAgICAgIHNlbmRlcl9hZGRyZXNzID0gcmVjb3Zlcl9zZW5kZXIoY2hhaW5faWQsIHR4KQoKICAgICAgICBlbnYgPSB2bS5FbnZpcm9ubWVudCgKICAgICAgICAgICAgY2FsbGVyPXNlbmRlcl9hZGRyZXNzLAogICAgICAgICAgICBvcmlnaW49c2VuZGVyX2FkZHJlc3MsCiAgICAgICAgICAgIGJsb2NrX2hhc2hlcz1ibG9ja19oYXNoZXMsCiAgICAgICAgICAgIGNvaW5iYXNlPWNvaW5iYXNlLAogICAgICAgICAgICBudW1iZXI9YmxvY2tfbnVtYmVyLAogICAgICAgICAgICBnYXNfbGltaXQ9YmxvY2tfZ2FzX2xpbWl0LAogICAgICAgICAgICBnYXNfcHJpY2U9dHguZ2FzX3ByaWNlLAogICAgICAgICAgICB0aW1lPWJsb2NrX3RpbWUsCiAgICAgICAgICAgIGRpZmZpY3VsdHk9YmxvY2tfZGlmZmljdWx0eSwKICAgICAgICAgICAgc3RhdGU9c3RhdGUsCiAgICAgICAgICAgIGNoYWluX2lkPWNoYWluX2lkLAogICAgICAgICkKCiAgICAgICAgZ2FzX3VzZWQsIGxvZ3MsIGhhc19lcnJlZCA9IHByb2Nlc3NfdHJhbnNhY3Rpb24oZW52LCB0eCkKICAgICAgICBnYXNfYXZhaWxhYmxlIC09IGdhc191c2VkCgogICAgICAgIHRyaWVfc2V0KAogICAgICAgICAgICByZWNlaXB0c190cmllLAogICAgICAgICAgICBybHAuZW5jb2RlKFVpbnQoaSkpLAogICAgICAgICAgICBSZWNlaXB0KAogICAgICAgICAgICAgICAgc3VjY2VlZGVkPW5vdCBoYXNfZXJyZWQsCiAgICAgICAgICAgICAgICBjdW11bGF0aXZlX2dhc191c2VkPShibG9ja19nYXNfbGltaXQgLSBnYXNfYXZhaWxhYmxlKSwKICAgICAgICAgICAgICAgIGJsb29tPWxvZ3NfYmxvb20obG9ncyksCiAgICAgICAgICAgICAgICBsb2dzPWxvZ3MsCiAgICAgICAgICAgICksCiAgICAgICAgKQogICAgICAgIGJsb2NrX2xvZ3MgKz0gbG9ncwoKICAgIHBheV9yZXdhcmRzKHN0YXRlLCBibG9ja19udW1iZXIsIGNvaW5iYXNlLCBvbW1lcnMpCgogICAgZ2FzX3JlbWFpbmluZyA9IGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUKCiAgICBibG9ja19sb2dzX2Jsb29tID0gbG9nc19ibG9vbShibG9ja19sb2dzKQoKICAgIHJldHVybiAoCiAgICAgICAgZ2FzX3JlbWFpbmluZywKICAgICAgICByb290KHRyYW5zYWN0aW9uc190cmllKSwKICAgICAgICByb290KHJlY2VpcHRzX3RyaWUpLAogICAgICAgIGJsb2NrX2xvZ3NfYmxvb20sCiAgICAgICAgc3RhdGUsCiAgICApCpRoB12UKGg/jNBkZWYgYXBwbHlfYm9keSgKICAgIHN0YXRlOiBTdGF0ZSwKICAgIGJsb2NrX2hhc2hlczogTGlzdFtIYXNoMzJdLAogICAgY29pbmJhc2U6IEFkZHJlc3MsCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja19nYXNfbGltaXQ6IFVpbnQsCiAgICBibG9ja190aW1lOiBVMjU2LAogICAgYmxvY2tfZGlmZmljdWx0eTogVWludCwKICAgIHRyYW5zYWN0aW9uczoglIWUgZR9lChoBWgGaCBqTiEAAGghaANoHWhEaB9LAHViatsSAAApgZR9lChoBWgGaAddlGg/jBJUdXBsZVtUcmFuc2FjdGlvbiyUhZSBlH2UKGgFaAZoIGpWIQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwPY2hhbmdlLXJlcGxhY2VklGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4wmVHVwbGVbVW5pb25bTGVnYWN5VHJhbnNhY3Rpb24sIEJ5dGVzXSyUhZSBlH2UKGgFaAZoIGpkIQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwSY2hhbmdlLXJlcGxhY2VtZW50lGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1Ymg/jKQgLi4uXSwKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLAogICAgY2hhaW5faWQ6IFVpbnQ2NCwKKSAtPiBUdXBsZVtVaW50LCBSb290LCBSb290LCBCbG9vbSwgU3RhdGVdOgogICAgZ2FzX2F2YWlsYWJsZSA9IGJsb2NrX2dhc19saW1pdAogICAgdHJhbnNhY3Rpb25zX3RyaWU6IJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4x8VHJpZVsKICAgICAgICBCeXRlcywgT3B0aW9uYWxbVW5pb25bQnl0ZXMsIExlZ2FjeVRyYW5zYWN0aW9uXV0KICAgIF0gPSBUcmllKHNlY3VyZWQ9RmFsc2UsIGRlZmF1bHQ9Tm9uZSkKICAgIHJlY2VpcHRzX3RyaWU6IJSFlIGUfZQoaAVoBmgganYhAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjAxjaGFuZ2UtYWRkZWSUYWgVXZRoF12UaBldlHVoHGraEgAAaCBqTiEAAGghaANoHWhEaB9LAHViaD+MDFRyaWVbQnl0ZXMsIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4wWT3B0aW9uYWxbVHJhbnNhY3Rpb25dXZSFlIGUfZQoaAVoBmggaoghAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjA9jaGFuZ2UtcmVwbGFjZWSUYWgVXZRoF12UaBldlHVoHGraEgAAaCBqTiEAAGghaANoHWhEaB9LAHViatsSAAApgZR9lChoBWgGaAddlGg/jCBPcHRpb25hbFtVbmlvbltCeXRlcywgUmVjZWlwdF1dXZSFlIGUfZQoaAVoBmggapYhAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UjBJjaGFuZ2UtcmVwbGFjZW1lbnSUYWgVXZRoF12UaBldlHVoHGraEgAAaCBqTiEAAGghaANoHWhEaB9LAHViaD+MMiA9IFRyaWUoCiAgICAgICAgc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lCiAgICAplIWUgZR9lChoBWgGaCBqTiEAAGghaANoHWhEaB9LAHViatsSAAApgZR9lChoBWgGaAddlGg/jGQKICAgIHJlY2VpcHRzX3RyaWU6IFRyaWVbQnl0ZXMsIE9wdGlvbmFsW1JlY2VpcHRdXSA9IFRyaWUoCiAgICAgICAgc2VjdXJlZD1GYWxzZSwgZGVmYXVsdD1Ob25lCiAgICAplIWUgZR9lChoBWgGaCBqqCEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDmNoYW5nZS1yZW1vdmVklGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1Ymg/jDgKICAgIGJsb2NrX2xvZ3M6IFR1cGxlW0xvZywgLi4uXSA9ICgpCgogICAgZm9yIGksIHR4IGluIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4w8ZW51bWVyYXRlKHRyYW5zYWN0aW9ucyk6CiAgICAgICAgdHJpZV9zZXQodHJhbnNhY3Rpb25zX3RyaWUslIWUgZR9lChoBWgGaCBquiEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMD2NoYW5nZS1yZXBsYWNlZJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGpOIQAAaCFoA2gdaERoH0sAdWJq2xIAACmBlH2UKGgFaAZoB12UaD+MYmVudW1lcmF0ZShtYXAoZGVjb2RlX3RyYW5zYWN0aW9uLCB0cmFuc2FjdGlvbnMpKToKICAgICAgICB0cmllX3NldCgKICAgICAgICAgICAgdHJhbnNhY3Rpb25zX3RyaWUslIWUgZR9lChoBWgGaCBqyCEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMEmNoYW5nZS1yZXBsYWNlbWVudJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGpOIQAAaCFoA2gdaERoH0sAdWJoP4wWIHJscC5lbmNvZGUoVWludChpKSksIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4yKZW5jb2RlX3RyYW5zYWN0aW9uKHR4KQogICAgICAgICkKCiAgICAgICAgZW5zdXJlKHR4LmdhcyA8PSBnYXNfYXZhaWxhYmxlLCBJbnZhbGlkQmxvY2spCiAgICAgICAgc2VuZGVyX2FkZHJlc3MgPSByZWNvdmVyX3NlbmRlcihjaGFpbl9pZCwglIWUgZR9lChoBWgGaCBq2iEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGpOIQAAaCFoA2gdaERoH0sAdWJoP4wNdHgpCgogICAgICAgIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4xEZW5zdXJlKHR4LmdhcyA8PSBnYXNfYXZhaWxhYmxlLCBJbnZhbGlkQmxvY2spCiAgICAgICAgc2VuZGVyX2FkZHJlc3OUhZSBlH2UKGgFaAZoIGrsIQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwPY2hhbmdlLXJlcGxhY2VklGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4wDZW52lIWUgZR9lChoBWgGaCBq+iEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMEmNoYW5nZS1yZXBsYWNlbWVudJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGpOIQAAaCFoA2gdaERoH0sAdWJoP4wDID0glIWUgZR9lChoBWgGaCBqTiEAAGghaANoHWhEaB9LAHViatsSAAApgZR9lChoBWgGaAddlGg/jBhyZWNvdmVyX3NlbmRlcihjaGFpbl9pZCyUhZSBlH2UKGgFaAZoIGoMIgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwPY2hhbmdlLXJlcGxhY2VklGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP1jNAQAAdm0uRW52aXJvbm1lbnQoCiAgICAgICAgICAgIGNhbGxlcj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgb3JpZ2luPXNlbmRlcl9hZGRyZXNzLAogICAgICAgICAgICBibG9ja19oYXNoZXM9YmxvY2tfaGFzaGVzLAogICAgICAgICAgICBjb2luYmFzZT1jb2luYmFzZSwKICAgICAgICAgICAgbnVtYmVyPWJsb2NrX251bWJlciwKICAgICAgICAgICAgZ2FzX2xpbWl0PWJsb2NrX2dhc19saW1pdCwKICAgICAgICAgICAgZ2FzX3ByaWNlPXR4Lmdhc19wcmljZSwKICAgICAgICAgICAgdGltZT1ibG9ja190aW1lLAogICAgICAgICAgICBkaWZmaWN1bHR5PWJsb2NrX2RpZmZpY3VsdHksCiAgICAgICAgICAgIHN0YXRlPXN0YXRlLAogICAgICAgICAgICBjaGFpbl9pZD1jaGFpbl9pZCwKICAgICAgICApCgogICAgICAgIGdhc191c2VkLCBsb2dzLCBoYXNfZXJyZWQgPSBwcm9jZXNzX3RyYW5zYWN0aW9uKGVudiyUhZSBlH2UKGgFaAZoIGoaIgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwSY2hhbmdlLXJlcGxhY2VtZW50lGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1Ymg/jA4gdHgpCgogICAgICAgIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP1jgAQAAZW52ID0gdm0uRW52aXJvbm1lbnQoCiAgICAgICAgICAgIGNhbGxlcj1zZW5kZXJfYWRkcmVzcywKICAgICAgICAgICAgb3JpZ2luPXNlbmRlcl9hZGRyZXNzLAogICAgICAgICAgICBibG9ja19oYXNoZXM9YmxvY2tfaGFzaGVzLAogICAgICAgICAgICBjb2luYmFzZT1jb2luYmFzZSwKICAgICAgICAgICAgbnVtYmVyPWJsb2NrX251bWJlciwKICAgICAgICAgICAgZ2FzX2xpbWl0PWJsb2NrX2dhc19saW1pdCwKICAgICAgICAgICAgZ2FzX3ByaWNlPXR4Lmdhc19wcmljZSwKICAgICAgICAgICAgdGltZT1ibG9ja190aW1lLAogICAgICAgICAgICBkaWZmaWN1bHR5PWJsb2NrX2RpZmZpY3VsdHksCiAgICAgICAgICAgIHN0YXRlPXN0YXRlLAogICAgICAgICAgICBjaGFpbl9pZD1jaGFpbl9pZCwKICAgICAgICApCgogICAgICAgIGdhc191c2VkLCBsb2dzLCBoYXNfZXJyZWQgPSBwcm9jZXNzX3RyYW5zYWN0aW9uKGVudiwgdHgpCiAgICAgICAglIWUgZR9lChoBWgGaCBqLCIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDmNoYW5nZS1yZW1vdmVklGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1Ymg/jCNnYXNfYXZhaWxhYmxlIC09IGdhc191c2VkCgogICAgICAgIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP1hHAQAAcmVjZWlwdDogVW5pb25bQnl0ZXMsIFJlY2VpcHRdID0gUmVjZWlwdCgKICAgICAgICAgICAgc3VjY2VlZGVkPW5vdCBoYXNfZXJyZWQsCiAgICAgICAgICAgIGN1bXVsYXRpdmVfZ2FzX3VzZWQ9KGJsb2NrX2dhc19saW1pdCAtIGdhc19hdmFpbGFibGUpLAogICAgICAgICAgICBibG9vbT1sb2dzX2Jsb29tKGxvZ3MpLAogICAgICAgICAgICBsb2dzPWxvZ3MsCiAgICAgICAgKQoKICAgICAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgICAgICByZWNlaXB0ID0gYiJceDAxIiArIHJscC5lbmNvZGUocmVjZWlwdCkKCiAgICAgICAglIWUgZR9lChoBWgGaCBqPiIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGpOIQAAaCFoA2gdaERoH0sAdWJoP4xSdHJpZV9zZXQoCiAgICAgICAgICAgIHJlY2VpcHRzX3RyaWUsCiAgICAgICAgICAgIHJscC5lbmNvZGUoVWludChpKSksCiAgICAgICAgICAgIJSFlIGUfZQoaAVoBmggak4hAABoIWgDaB1oRGgfSwB1YmrbEgAAKYGUfZQoaAVoBmgHXZRoP4xmUmVjZWlwdCgKICAgICAgICAgICAgICAgIHN1Y2NlZWRlZD1ub3QgaGFzX2VycmVkLAogICAgICAgICAgICAgICAgY3VtdWxhdGl2ZV9nYXNfdXNlZD0oYmxvY2tfZ2FzX2xpbWl0lIWUgZR9lChoBWgGaCBqUCIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMD2NoYW5nZS1yZXBsYWNlZJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGpOIQAAaCFoA2gdaERoH0sAdWJq2xIAACmBlH2UKGgFaAZoB12UaD+Mi3JlY2VpcHQsCiAgICAgICAgKQoKICAgICAgICBibG9ja19sb2dzICs9IGxvZ3MKCiAgICBwYXlfcmV3YXJkcyhzdGF0ZSwgYmxvY2tfbnVtYmVyLCBjb2luYmFzZSwgb21tZXJzKQoKICAgIGdhc19yZW1haW5pbmcgPSBibG9ja19nYXNfbGltaXSUhZSBlH2UKGgFaAZoIGpeIgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlIwSY2hhbmdlLXJlcGxhY2VtZW50lGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1Ymg/jAMgLSCUhZSBlH2UKGgFaAZoIGpOIQAAaCFoA2gdaERoH0sAdWJq2xIAACmBlH2UKGgFaAZoB12UaD+M5mdhc19hdmFpbGFibGUpLAogICAgICAgICAgICAgICAgYmxvb209bG9nc19ibG9vbShsb2dzKSwKICAgICAgICAgICAgICAgIGxvZ3M9bG9ncywKICAgICAgICAgICAgKSwKICAgICAgICApCiAgICAgICAgYmxvY2tfbG9ncyArPSBsb2dzCgogICAgcGF5X3Jld2FyZHMoc3RhdGUsIGJsb2NrX251bWJlciwgY29pbmJhc2UsIG9tbWVycykKCiAgICBnYXNfcmVtYWluaW5nID0gYmxvY2tfZ2FzX2xpbWl0IC0glIWUgZR9lChoBWgGaCBqcCIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDmNoYW5nZS1yZW1vdmVklGFoFV2UaBddlGgZXZR1aBxq2hIAAGggak4hAABoIWgDaB1oRGgfSwB1Ymg/jM9nYXNfYXZhaWxhYmxlCgogICAgYmxvY2tfbG9nc19ibG9vbSA9IGxvZ3NfYmxvb20oYmxvY2tfbG9ncykKCiAgICByZXR1cm4gKAogICAgICAgIGdhc19yZW1haW5pbmcsCiAgICAgICAgcm9vdCh0cmFuc2FjdGlvbnNfdHJpZSksCiAgICAgICAgcm9vdChyZWNlaXB0c190cmllKSwKICAgICAgICBibG9ja19sb2dzX2Jsb29tLAogICAgICAgIHN0YXRlLAogICAgKQqUhZSBlH2UKGgFaAZoIGpOIQAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxTL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbXVpcl9nbGFjaWVyL3NwZWMucHmUjAl4bWw6c3BhY2WUahkFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqpg8AAEsBc4wHbGluZW5vc5SJdWgcao4PAABoHWgeaB9NlgFoIGrbHAAAaCFoA3ViZWgOfZQoaBBdlGosAwAAYWgTXZRoFV2UjAphcHBseV9ib2R5lGFoF12UaBldlHVoHGgzaB1oHmgfTXABaCBqGQ8AAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwPdmFsaWRhdGVfb21tZXJzlGgHXZRoP4wPdmFsaWRhdGVfb21tZXJzlIWUgZR9lChoBWgGaCBqmyIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH02bAWggapgiAAB1YmgkKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAdlbnRyaWVzlF2UdWgcaCNoHU5oH05oIGqYIgAAdWJqSw8AACmBlH2UKGgFaAZoB12UKGpQDwAAKYGUfZQoaAWMLHZhbGlkYXRlX29tbWVycyhvbW1lcnMsIGJsb2NrX2hlYWRlciwgY2hhaW4plGgHXZQoalYPAAApgZR9lChoBYwPdmFsaWRhdGVfb21tZXJzlGgHXZRoP4wPdmFsaWRhdGVfb21tZXJzlIWUgZR9lChoBWgGaCBquyIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoamEPAABqYg8AAGpjDwAAamQPAABlaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqVQ8AAGgdaB5oH05oIGq3IgAAdWJqJxQAACmBlH2UKGgFjBtvbW1lcnMsIGJsb2NrX2hlYWRlciwgY2hhaW6UaAddlChqLRQAACmBlH2UKGgFjAZvbW1lcnOUaAddlGrbEgAAKYGUfZQoaAVoBmgHXZRoP4wGb21tZXJzlIWUgZR9lChoBWgGaCBq0iIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRqPBQAAGFoFV2UaBddlGgZXZR1aBxq2hIAAGgdTmgfTmggas4iAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAl4bWw6c3BhY2WUahkFAAB1aBxqLBQAAGgdTmgfTmggasoiAAB1YmotFAAAKYGUfZQoaAWMDGJsb2NrX2hlYWRlcpRoB12UatsSAAApgZR9lChoBWgGaAddlGg/jAxibG9ja19oZWFkZXKUhZSBlH2UKGgFaAZoIGrqIgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGo8FAAAYWgVXZRoF12UaBldlHVoHGraEgAAaB1OaB9OaCBq5iIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqGQUAAHVoHGosFAAAaB1OaB9OaCBqyiIAAHViai0UAAApgZR9lChoBYwFY2hhaW6UaAddlGrbEgAAKYGUfZQoaAVoBmgHXZRoP4wFY2hhaW6UhZSBlH2UKGgFaAZoIGoCIwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGo8FAAAYWgVXZRoF12UaBldlHVoHGraEgAAaB1OaB9OaCBq/iIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqGQUAAHVoHGosFAAAaB1OaB9OaCBqyiIAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCXhtbDpzcGFjZZRqGQUAAHVoHGomFAAAaB1oHmgfTmggarciAAB1YmVoDn2UKGgQXZSMKmV0aGVyZXVtLm11aXJfZ2xhY2llci5zcGVjLnZhbGlkYXRlX29tbWVyc5RhaBNdlChqbA8AAGptDwAAjAJweZRqbw8AAGpwDwAAZWgVXZRoF12UaBldlIwGbW9kdWxllGp1DwAAjAVjbGFzc5RoBowIZnVsbG5hbWWUar0iAAB1aBxqTw8AAGgdaB5oH02eAWggarQiAAB1Ymp5DwAAKYGUfZQoaAVoBmgHXZQoaGkpgZR9lChoBYwsVmFsaWRhdGVzIHRoZSBvbW1lcnMgbWVudGlvbmVkIGluIHRoZSBibG9jay6UaAddlGg/jCxWYWxpZGF0ZXMgdGhlIG9tbWVycyBtZW50aW9uZWQgaW4gdGhlIGJsb2NrLpSFlIGUfZQoaAVoBmggaisjAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NoQFoIGooIwAAdWJoaSmBlH2UKGgFjKRBbiBvbW1lciBibG9jayBpcyBhIGJsb2NrIHRoYXQgd2Fzbid0IGNhbm9uaWNhbGx5IGFkZGVkIHRvIHRoZQpibG9ja2NoYWluIGJlY2F1c2UgaXQgd2Fzbid0IHZhbGlkYXRlZCBhcyBmYXN0IGFzIHRoZSBjYW5vbmljYWwgYmxvY2sKYnV0IHdhcyBtaW5lZCBhdCB0aGUgc2FtZSB0aW1lLpRoB12UaD+MqEFuIG9tbWVyIGJsb2NrIGlzIGEgYmxvY2sgdGhhdCB3YXNu4oCZdCBjYW5vbmljYWxseSBhZGRlZCB0byB0aGUKYmxvY2tjaGFpbiBiZWNhdXNlIGl0IHdhc27igJl0IHZhbGlkYXRlZCBhcyBmYXN0IGFzIHRoZSBjYW5vbmljYWwgYmxvY2sKYnV0IHdhcyBtaW5lZCBhdCB0aGUgc2FtZSB0aW1lLpSFlIGUfZQoaAVoBmggajkjAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NowFoIGooIwAAdWJoaSmBlH2UKGgFWBIBAABUbyBiZSBjb25zaWRlcmVkIHZhbGlkLCB0aGUgb21tZXJzIG11c3QgYWRoZXJlIHRvIHRoZSBydWxlcyBkZWZpbmVkIGluCnRoZSBFdGhlcmV1bSBwcm90b2NvbC4gVGhlIG1heGltdW0gYW1vdW50IG9mIG9tbWVycyBpcyAyIHBlciBibG9jayBhbmQKdGhlcmUgY2Fubm90IGJlIGR1cGxpY2F0ZSBvbW1lcnMgaW4gYSBibG9jay4gTWFueSBvZiB0aGUgb3RoZXIgb21tZXIKY29udHJhaW50cyBhcmUgbGlzdGVkIGluIHRoZSBpbi1saW5lIGNvbW1lbnRzIG9mIHRoaXMgZnVuY3Rpb24ulGgHXZRoP1gSAQAAVG8gYmUgY29uc2lkZXJlZCB2YWxpZCwgdGhlIG9tbWVycyBtdXN0IGFkaGVyZSB0byB0aGUgcnVsZXMgZGVmaW5lZCBpbgp0aGUgRXRoZXJldW0gcHJvdG9jb2wuIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBvbW1lcnMgaXMgMiBwZXIgYmxvY2sgYW5kCnRoZXJlIGNhbm5vdCBiZSBkdXBsaWNhdGUgb21tZXJzIGluIGEgYmxvY2suIE1hbnkgb2YgdGhlIG90aGVyIG9tbWVyCmNvbnRyYWludHMgYXJlIGxpc3RlZCBpbiB0aGUgaW4tbGluZSBjb21tZW50cyBvZiB0aGlzIGZ1bmN0aW9uLpSFlIGUfZQoaAVoBmggakcjAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NpwFoIGooIwAAdWJqqxQAACmBlH2UKGgFaAZoB12UarAUAAApgZR9lChoBWgGaAddlChqtRQAACmBlH2UKGgFjApQYXJhbWV0ZXJzlGgHXZRoP4wKUGFyYW1ldGVyc5SFlIGUfZQoaAVoBmggalsjAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcarQUAABoHWgeaB9LAGggalgjAAB1YmrFFAAAKYGUfZQoaAVoBmgHXZRoXymBlH2UKGgFaAZoB12UKGhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDhvbW1lcnMgLS0gTGlzdCBvZiBvbW1lcnMgbWVudGlvbmVkIGluIHRoZSBjdXJyZW50IGJsb2NrLpRoB12UKGrOFAAAKYGUfZQoaAWMBm9tbWVyc5RoB12UaD+MBm9tbWVyc5SFlIGUfZQoaAVoBmgganYjAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUanUPAACMCHB5OmNsYXNzlE51aBxqzRQAAGgdTmgfTmgganIjAAB1Ymg/jDMg4oCTIExpc3Qgb2Ygb21tZXJzIG1lbnRpb25lZCBpbiB0aGUgY3VycmVudCBibG9jay6UhZSBlH2UKGgFaAZoIGpyIwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqbyMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggamwjAAB1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjCxibG9ja19oZWFkZXIgLS0gVGhlIGhlYWRlciBvZiBjdXJyZW50IGJsb2NrLpRoB12UKGrOFAAAKYGUfZQoaAWMDGJsb2NrX2hlYWRlcpRoB12UaD+MDGJsb2NrX2hlYWRlcpSFlIGUfZQoaAVoBmggap4jAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAtyZWZzcGVjaWZpY5SIjAlweTptb2R1bGWUanUPAACMCHB5OmNsYXNzlE51aBxqzRQAAGgdTmgfTmggapojAAB1Ymg/jCEg4oCTIFRoZSBoZWFkZXIgb2YgY3VycmVudCBibG9jay6UhZSBlH2UKGgFaAZoIGqaIwAAaCFoA2gdaERoH0sAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqlyMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdTmgfTmggamwjAAB1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjCNjaGFpbiAtLSBIaXN0b3J5IGFuZCBjdXJyZW50IHN0YXRlLpRoB12UKGrOFAAAKYGUfZQoaAWMBWNoYWlulGgHXZRoP4wFY2hhaW6UhZSBlH2UKGgFaAZoIGrGIwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwLcmVmc3BlY2lmaWOUiIwJcHk6bW9kdWxllGp1DwAAjAhweTpjbGFzc5ROdWgcas0UAABoHU5oH05oIGrCIwAAdWJoP4wfIOKAkyBIaXN0b3J5IGFuZCBjdXJyZW50IHN0YXRlLpSFlIGUfZQoaAVoBmggasIjAABoIWgDaB1oRGgfSwB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGq/IwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1OaB9OaCBqbCMAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoXmgdTmgfTmggamkjAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasQUAABoHU5oH05oIGpYIwAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqvFAAAaB1OaB9OaCBqVSMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqqhQAAGgdTmgfTmggaigjAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcangPAABoHWgeaB9OaCBqtCIAAHViZWgOfZQoaBBdlGgTXZQoaiEjAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqISMAAIwHb2JqdHlwZZRqCCQAAIwIZGVzY3R5cGWUaggkAACMB25vaW5kZXiUiXVoHGpKDwAAaB1OaB9OaCBqmCIAAHViao8PAAApgZR9lChoBVgBCQAAZGVmIHZhbGlkYXRlX29tbWVycygKICAgIG9tbWVyczogVHVwbGVbSGVhZGVyLCAuLi5dLCBibG9ja19oZWFkZXI6IEhlYWRlciwgY2hhaW46IEJsb2NrQ2hhaW4KKSAtPiBOb25lOgogICAgYmxvY2tfaGFzaCA9IHJscC5ybHBfaGFzaChibG9ja19oZWFkZXIpCgogICAgZW5zdXJlKHJscC5ybHBfaGFzaChvbW1lcnMpID09IGJsb2NrX2hlYWRlci5vbW1lcnNfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgIGlmIGxlbihvbW1lcnMpID09IDA6CiAgICAgICAgIyBOb3RoaW5nIHRvIHZhbGlkYXRlCiAgICAgICAgcmV0dXJuCgogICAgIyBDaGVjayB0aGF0IGVhY2ggb21tZXIgc2F0aXNmaWVzIHRoZSBjb25zdHJhaW50cyBvZiBhIGhlYWRlcgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lci5udW1iZXIgPCBibG9ja19oZWFkZXIubnVtYmVyLCBJbnZhbGlkQmxvY2spCiAgICAgICAgb21tZXJfcGFyZW50X2hlYWRlciA9IGNoYWluLmJsb2Nrc1sKICAgICAgICAgICAgLShibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyKSAtIDEKICAgICAgICBdLmhlYWRlcgogICAgICAgIHZhbGlkYXRlX2hlYWRlcihvbW1lciwgb21tZXJfcGFyZW50X2hlYWRlcikKCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgY2FuIGJlIG9ubHkgYXQgbW9zdCAyIG9tbWVycyBmb3IgYSBibG9jay4KICAgIGVuc3VyZShsZW4ob21tZXJzKSA8PSAyLCBJbnZhbGlkQmxvY2spCgogICAgb21tZXJzX2hhc2hlcyA9IFtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBvbW1lcnNdCiAgICAjIENoZWNrIHRoYXQgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZXMgaW4gdGhlIG9tbWVycyBvZiBjdXJyZW50IGJsb2NrCiAgICBlbnN1cmUobGVuKG9tbWVyc19oYXNoZXMpID09IGxlbihzZXQob21tZXJzX2hhc2hlcykpLCBJbnZhbGlkQmxvY2spCgogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja3MgPSBjaGFpbi5ibG9ja3NbLShNQVhfT01NRVJfREVQVEggKyAxKSA6XQogICAgcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMgPSB7CiAgICAgICAgcmxwLnJscF9oYXNoKGJsb2NrLmhlYWRlcikgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzCiAgICB9CiAgICByZWNlbnRfb21tZXJzX2hhc2hlczogU2V0W0hhc2gzMl0gPSBzZXQoKQogICAgZm9yIGJsb2NrIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzOgogICAgICAgIHJlY2VudF9vbW1lcnNfaGFzaGVzID0gcmVjZW50X29tbWVyc19oYXNoZXMudW5pb24oCiAgICAgICAgICAgIHtybHAucmxwX2hhc2gob21tZXIpIGZvciBvbW1lciBpbiBibG9jay5vbW1lcnN9CiAgICAgICAgKQoKICAgIGZvciBvbW1lcl9pbmRleCwgb21tZXIgaW4gZW51bWVyYXRlKG9tbWVycyk6CiAgICAgICAgb21tZXJfaGFzaCA9IG9tbWVyc19oYXNoZXNbb21tZXJfaW5kZXhdCiAgICAgICAgIyBUaGUgY3VycmVudCBibG9jayBzaG91bGRuJ3QgYmUgdGhlIG9tbWVyCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggIT0gYmxvY2tfaGFzaCwgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHJlY2VudCBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgc2hvdWxkbid0IGJlIG9uZSBvZiB0aGUgdW5jbGVzIG1lbnRpb25lZCBpbiB0aGUgcmVjZW50CiAgICAgICAgIyBjYW5vbmljYWwgYmxvY2tzCiAgICAgICAgZW5zdXJlKG9tbWVyX2hhc2ggbm90IGluIHJlY2VudF9vbW1lcnNfaGFzaGVzLCBJbnZhbGlkQmxvY2spCgogICAgICAgICMgT21tZXIgYWdlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBibG9jay4gRm9yIGV4YW1wbGUsIGFuIGFnZSBvZgogICAgICAgICMgMSBpbmRpY2F0ZXMgdGhhdCB0aGUgb21tZXIgaXMgYSBzaWJsaW5nIG9mIHByZXZpb3VzIGJsb2NrLgogICAgICAgIG9tbWVyX2FnZSA9IGJsb2NrX2hlYWRlci5udW1iZXIgLSBvbW1lci5udW1iZXIKICAgICAgICBlbnN1cmUoMSA8PSBvbW1lcl9hZ2UgPD0gTUFYX09NTUVSX0RFUFRILCBJbnZhbGlkQmxvY2spCgogICAgICAgIGVuc3VyZSgKICAgICAgICAgICAgb21tZXIucGFyZW50X2hhc2ggaW4gcmVjZW50X2Nhbm9uaWNhbF9ibG9ja19oYXNoZXMsIEludmFsaWRCbG9jawogICAgICAgICkKICAgICAgICBlbnN1cmUob21tZXIucGFyZW50X2hhc2ggIT0gYmxvY2tfaGVhZGVyLnBhcmVudF9oYXNoLCBJbnZhbGlkQmxvY2spCpRoB12UaD9YAQkAAGRlZiB2YWxpZGF0ZV9vbW1lcnMoCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwgYmxvY2tfaGVhZGVyOiBIZWFkZXIsIGNoYWluOiBCbG9ja0NoYWluCikgLT4gTm9uZToKICAgIGJsb2NrX2hhc2ggPSBybHAucmxwX2hhc2goYmxvY2tfaGVhZGVyKQoKICAgIGVuc3VyZShybHAucmxwX2hhc2gob21tZXJzKSA9PSBibG9ja19oZWFkZXIub21tZXJzX2hhc2gsIEludmFsaWRCbG9jaykKCiAgICBpZiBsZW4ob21tZXJzKSA9PSAwOgogICAgICAgICMgTm90aGluZyB0byB2YWxpZGF0ZQogICAgICAgIHJldHVybgoKICAgICMgQ2hlY2sgdGhhdCBlYWNoIG9tbWVyIHNhdGlzZmllcyB0aGUgY29uc3RyYWludHMgb2YgYSBoZWFkZXIKICAgIGZvciBvbW1lciBpbiBvbW1lcnM6CiAgICAgICAgZW5zdXJlKDEgPD0gb21tZXIubnVtYmVyIDwgYmxvY2tfaGVhZGVyLm51bWJlciwgSW52YWxpZEJsb2NrKQogICAgICAgIG9tbWVyX3BhcmVudF9oZWFkZXIgPSBjaGFpbi5ibG9ja3NbCiAgICAgICAgICAgIC0oYmxvY2tfaGVhZGVyLm51bWJlciAtIG9tbWVyLm51bWJlcikgLSAxCiAgICAgICAgXS5oZWFkZXIKICAgICAgICB2YWxpZGF0ZV9oZWFkZXIob21tZXIsIG9tbWVyX3BhcmVudF9oZWFkZXIpCgogICAgIyBDaGVjayB0aGF0IHRoZXJlIGNhbiBiZSBvbmx5IGF0IG1vc3QgMiBvbW1lcnMgZm9yIGEgYmxvY2suCiAgICBlbnN1cmUobGVuKG9tbWVycykgPD0gMiwgSW52YWxpZEJsb2NrKQoKICAgIG9tbWVyc19oYXNoZXMgPSBbcmxwLnJscF9oYXNoKG9tbWVyKSBmb3Igb21tZXIgaW4gb21tZXJzXQogICAgIyBDaGVjayB0aGF0IHRoZXJlIGFyZSBubyBkdXBsaWNhdGVzIGluIHRoZSBvbW1lcnMgb2YgY3VycmVudCBibG9jawogICAgZW5zdXJlKGxlbihvbW1lcnNfaGFzaGVzKSA9PSBsZW4oc2V0KG9tbWVyc19oYXNoZXMpKSwgSW52YWxpZEJsb2NrKQoKICAgIHJlY2VudF9jYW5vbmljYWxfYmxvY2tzID0gY2hhaW4uYmxvY2tzWy0oTUFYX09NTUVSX0RFUFRIICsgMSkgOl0KICAgIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzID0gewogICAgICAgIHJscC5ybHBfaGFzaChibG9jay5oZWFkZXIpIGZvciBibG9jayBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrcwogICAgfQogICAgcmVjZW50X29tbWVyc19oYXNoZXM6IFNldFtIYXNoMzJdID0gc2V0KCkKICAgIGZvciBibG9jayBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrczoKICAgICAgICByZWNlbnRfb21tZXJzX2hhc2hlcyA9IHJlY2VudF9vbW1lcnNfaGFzaGVzLnVuaW9uKAogICAgICAgICAgICB7cmxwLnJscF9oYXNoKG9tbWVyKSBmb3Igb21tZXIgaW4gYmxvY2sub21tZXJzfQogICAgICAgICkKCiAgICBmb3Igb21tZXJfaW5kZXgsIG9tbWVyIGluIGVudW1lcmF0ZShvbW1lcnMpOgogICAgICAgIG9tbWVyX2hhc2ggPSBvbW1lcnNfaGFzaGVzW29tbWVyX2luZGV4XQogICAgICAgICMgVGhlIGN1cnJlbnQgYmxvY2sgc2hvdWxkbid0IGJlIHRoZSBvbW1lcgogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoICE9IGJsb2NrX2hhc2gsIEludmFsaWRCbG9jaykKCiAgICAgICAgIyBPbW1lciBzaG91bGRuJ3QgYmUgb25lIG9mIHRoZSByZWNlbnQgY2Fub25pY2FsIGJsb2NrcwogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoIG5vdCBpbiByZWNlbnRfY2Fub25pY2FsX2Jsb2NrX2hhc2hlcywgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIHNob3VsZG4ndCBiZSBvbmUgb2YgdGhlIHVuY2xlcyBtZW50aW9uZWQgaW4gdGhlIHJlY2VudAogICAgICAgICMgY2Fub25pY2FsIGJsb2NrcwogICAgICAgIGVuc3VyZShvbW1lcl9oYXNoIG5vdCBpbiByZWNlbnRfb21tZXJzX2hhc2hlcywgSW52YWxpZEJsb2NrKQoKICAgICAgICAjIE9tbWVyIGFnZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgYmxvY2suIEZvciBleGFtcGxlLCBhbiBhZ2Ugb2YKICAgICAgICAjIDEgaW5kaWNhdGVzIHRoYXQgdGhlIG9tbWVyIGlzIGEgc2libGluZyBvZiBwcmV2aW91cyBibG9jay4KICAgICAgICBvbW1lcl9hZ2UgPSBibG9ja19oZWFkZXIubnVtYmVyIC0gb21tZXIubnVtYmVyCiAgICAgICAgZW5zdXJlKDEgPD0gb21tZXJfYWdlIDw9IE1BWF9PTU1FUl9ERVBUSCwgSW52YWxpZEJsb2NrKQoKICAgICAgICBlbnN1cmUoCiAgICAgICAgICAgIG9tbWVyLnBhcmVudF9oYXNoIGluIHJlY2VudF9jYW5vbmljYWxfYmxvY2tfaGFzaGVzLCBJbnZhbGlkQmxvY2sKICAgICAgICApCiAgICAgICAgZW5zdXJlKG9tbWVyLnBhcmVudF9oYXNoICE9IGJsb2NrX2hlYWRlci5wYXJlbnRfaGFzaCwgSW52YWxpZEJsb2NrKQqUhZSBlH2UKGgFaAZoIGoQJAAA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cmQgZm9yIHRoZWlyIGVmZm9ydHMuIFRoaXMgcmV3YXJkIGlzIGNhbGxlZCBhbiBvbW1lciByZXdhcmQgYW5kIGlzCmNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIG9tbWVyIGJsb2NrIHRoYXQgdGhleQptaW5lZC6UaAddlChoP4xSVGhlIG1pbmVyIG9mIHRoZSBjYW5vbmljYWwgYmxvY2sgaXMgcmV3YXJkZWQgd2l0aCB0aGUgcHJlZGV0ZXJtaW5lZApibG9jayByZXdhcmQsIJSFlIGUfZQoaAVoBmggauckAABoIWgDaB1oRGgfSwB1YmqPBQAAKYGUfZQoaAWMEGBgQkxPQ0tfUkVXQVJEYGCUaAddlGg/jAxCTE9DS19SRVdBUkSUhZSBlH2UKGgFaAZoIGrvJAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqOBQAAaB1OaB9OaCBq5yQAAHViaD9YMwIAACwgcGx1cyBhIHZhcmlhYmxlIGF3YXJkIGJhc2VkIG9mZiBvZiB0aGUKbnVtYmVyIG9mIG9tbWVyIGJsb2NrcyB0aGF0IHdlcmUgbWluZWQgYXJvdW5kIHRoZSBzYW1lIHRpbWUsIGFuZCBpbmNsdWRlZAppbiB0aGUgY2Fub25pY2FsIGJsb2Nr4oCZcyBoZWFkZXIuIEFuIG9tbWVyIGJsb2NrIGlzIGEgYmxvY2sgdGhhdCB3YXNu4oCZdAphZGRlZCB0byB0aGUgY2Fub25pY2FsIGJsb2NrY2hhaW4gYmVjYXVzZSBpdCB3YXNu4oCZdCB2YWxpZGF0ZWQgYXMgZmFzdCBhcwp0aGUgYWNjZXB0ZWQgYmxvY2sgYnV0IHdhcyBtaW5lZCBhdCB0aGUgc2FtZSB0aW1lLiBBbHRob3VnaCBub3QgYWxsIGJsb2Nrcwp0aGF0IGFyZSBtaW5lZCBhcmUgYWRkZWQgdG8gdGhlIGNhbm9uaWNhbCBjaGFpbiwgbWluZXJzIGFyZSBzdGlsbCBwYWlkIGEKcmV3YXJkIGZvciB0aGVpciBlZmZvcnRzLiBUaGlzIHJld2FyZCBpcyBjYWxsZWQgYW4gb21tZXIgcmV3YXJkIGFuZCBpcwpjYWxj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YXNlLCBtaW5lcl9yZXdhcmQpCgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICAjIE9tbWVyIGFnZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgYmxvY2suCiAgICAgICAgb21tZXJfYWdlID0gVTI1NihibG9ja19udW1iZXIgLSBvbW1lci5udW1iZXIpCiAgICAgICAgb21tZXJfbWluZXJfcmV3YXJkID0gKCg4IC0gb21tZXJfYWdlKSAqIEJMT0NLX1JFV0FSRCkgLy8gOAogICAgICAgIGNyZWF0ZV9ldGhlcihzdGF0ZSwgb21tZXIuY29pbmJhc2UsIG9tbWVyX21pbmVyX3Jld2FyZCkKlGgHXZRoP1j+AQAAZGVmIHBheV9yZXdhcmRzKAogICAgc3RhdGU6IFN0YXRlLAogICAgYmxvY2tfbnVtYmVyOiBVaW50LAogICAgY29pbmJhc2U6IEFkZHJlc3MsCiAgICBvbW1lcnM6IFR1cGxlW0hlYWRlciwgLi4uXSwKKSAtPiBOb25lOgogICAgbWluZXJfcmV3YXJkID0gQkxPQ0tfUkVXQVJEICsgKGxlbihvbW1lcnMpICogKEJMT0NLX1JFV0FSRCAvLyAzMikpCiAgICBjcmVhdGVfZXRoZXIoc3RhdGUsIGNvaW5iYXNlLCBtaW5lcl9yZXdhcmQpCgogICAgZm9yIG9tbWVyIGluIG9tbWVyczoKICAgICAgICAjIE9tbWVyIGFnZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgYmxvY2suCiAgICAgICAgb21tZXJfYWdlID0gVTI1NihibG9ja19udW1iZXIgLSBvbW1lci5udW1iZXIpCiAgICAgICAgb21tZXJfbWluZXJfcmV3YXJkID0gKCg4IC0gb21tZXJfYWdlKSAqIEJMT0NLX1JFV0FSRCkgLy8gOAogICAgICAgIGNyZWF0ZV9ldGhlcihzdGF0ZSwgb21tZXIuY29pbmJhc2UsIG9tbWVyX21pbmVyX3Jld2FyZCkKlIWUgZSVAAABAAAAAAB9lChoBWgGaCBq6iUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMUy9ob21lL3J1bm5lci93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ZApyZWZ1bmRzIHRoZW0gdGhlIHByb3BlciBhbW91bnQgYWZ0ZXIgZXhlY3V0aW9uLiBDYWxsaW5nIGNvbnRyYWN0cywKZGVwbG95aW5nIGNvZGUsIGFuZCBpbmNyZW1lbnRpbmcgbm9uY2VzIGFyZSBhbGwgZXhhbXBsZXMgb2YgYWN0aW9ucyB0aGF0CmhhcHBlbiB3aXRoaW4gdGhpcyBmdW5jdGlvbiBvciBmcm9tIGEgY2FsbCBtYWRlIHdpdGhpbiB0aGlzIGZ1bmN0aW9uLpRoB12UaD9YXQEAAFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSBhY3Rpb25zIG5lZWRlZCB0byBleGVjdXRlIGEgdHJhbnNhY3Rpb24uCkl0IGRlY3JlbWVudHMgdGhlIHNlbmRlcuKAmXMgYWNjb3VudCBhZnRlciBjYWxjdWxhdGluZyB0aGUgZ2FzIGZlZSBhbmQKcmVmdW5kcyB0aGVtIHRoZSBwcm9wZXIgYW1vdW50IGFmdGVyIGV4ZWN1dGlvbi4gQ2FsbGluZyBjb250cmFjdHMsCmRlcGxveWluZyBjb2RlLCBhbmQgaW5jcmVtZW50aW5nIG5vbmNlcyBhcmUgYWxsIGV4YW1wbGVzIG9mIGFjdGlvbnMgdGhhdApoYXBwZW4gd2l0aGluIHRoaXMgZnVuY3Rpb24gb3IgZnJvbSBhIGNhbGwgbWFkZSB3aXRoaW4gdGhpcyBmdW5jdGlvbi6UhZSBlH2UKGgFaAZoIGqRJgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfTeABaCBqgCYAAHViaGkpgZR9lChoBYxSQWNjb3VudHMgdGhhdCBhcmUgbWFya2VkIGZvciBkZWxldGlvbiBhcmUgcHJvY2Vzc2VkIGFuZCBkZXN0cm95ZWQgYWZ0ZXIKZXhlY3V0aW9uLpRoB12UaD+MUkFjY291bnRzIHRoYXQgYXJlIG1hcmtlZCBmb3IgZGVsZXRpb24gYXJlIHByb2Nlc3NlZCBhbmQgZGVzdHJveWVkIGFmdGVyCmV4ZWN1dGlvbi6UhZSBlH2UKGgFaAZoIGqfJgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVo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ZXJfYWNjb3VudC5jb2RlID09IGJ5dGVhcnJheSgpLCBJbnZhbGlkQmxvY2spCgogICAgZ2FzID0gdHguZ2FzIC0gY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4KQogICAgaW5jcmVtZW50X25vbmNlKGVudi5zdGF0ZSwgc2VuZGVyKQogICAgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfZ2FzX2ZlZSA9IHNlbmRlcl9hY2NvdW50LmJhbGFuY2UgLSBnYXNfZmVlCiAgICBzZXRfYWNjb3VudF9iYWxhbmNlKGVudi5zdGF0ZSwgc2VuZGVyLCBzZW5kZXJfYmFsYW5jZV9hZnRlcl9nYXNfZmVlKQoKICAgIG1lc3NhZ2UgPSBwcmVwYXJlX21lc3NhZ2UoCiAgICAgICAgc2VuZGVyLAogICAgICAgIHR4LnRvLAogICAgICAgIHR4LnZhbHVlLAogICAgICAgIHR4LmRhdGEsCiAgICAgICAgZ2FzLAogICAgICAgIGVudiwKICAgICkKCiAgICBvdXRwdXQgPSBwcm9jZXNzX21lc3NhZ2VfY2FsbChtZXNzYWdlLCBlbnYpCgogICAgZ2FzX3VzZWQgPSB0eC5nYXMgLSBvdXRwdXQuZ2FzX2xlZnQKICAgIGdhc19yZWZ1bmQgPSBtaW4oZ2FzX3VzZWQgLy8gMiwgb3V0cHV0LnJlZnVuZF9jb3VudGVyKQogICAgZ2FzX3JlZnVuZF9hbW91bnQgPSAob3V0cHV0Lmdhc19sZWZ0ICsgZ2FzX3JlZnVuZCkgKiB0eC5nYXNfcHJpY2UKICAgIHRyYW5zYWN0aW9uX2ZlZSA9ICh0eC5nYXMgLSBvdXRwdXQuZ2FzX2xlZnQgLSBnYXNfcmVmdW5kKSAqIHR4Lmdhc19wcmljZQogICAgdG90YWxfZ2FzX3VzZWQgPSBnYXNfdXNlZCAtIGdhc19yZWZ1bmQKCiAgICAjIHJlZnVuZCBnYXMKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX3JlZnVuZCA9ICgKICAgICAgICBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikuYmFsYW5jZSArIGdhc19yZWZ1bmRfYW1vdW50CiAgICApCiAgICBzZXRfYWNjb3VudF9iYWxhbmNlKGVudi5zdGF0ZSwgc2VuZGVyLCBzZW5kZXJfYmFsYW5jZV9hZnRlcl9yZWZ1bmQpCgogICAgIyB0cmFuc2ZlciBtaW5lciBmZWVzCiAgICBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUgPSAoCiAgICAgICAgZ2V0X2FjY291bnQoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpLmJhbGFuY2UgKyB0cmFuc2FjdGlvbl9mZWUKICAgICkKICAgIGlmIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZSAhPSAwOgogICAgICAgIHNldF9hY2NvdW50X2JhbGFuY2UoCiAgICAgICAgICAgIGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlLCBjb2luYmFzZV9iYWxhbmNlX2FmdGVyX21pbmluZ19mZWUKICAgICAgICApCiAgICBlbGlmIGFjY291bnRfZXhpc3RzX2FuZF9pc19lbXB0eShlbnYuc3RhdGUsIGVudi5jb2luYmFzZSk6CiAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKQoKICAgIGZvciBhZGRyZXNzIGluIG91dHB1dC5hY2NvdW50c190b19kZWxldGU6CiAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICBmb3IgYWRkcmVzcyBpbiBvdXRwdXQudG91Y2hlZF9hY2NvdW50czoKICAgICAgICBpZiBhY2NvdW50X2V4aXN0c19hbmRfaXNfZW1wdHkoZW52LnN0YXRlLCBhZGRyZXNzKToKICAgICAgICAgICAgZGVzdHJveV9hY2NvdW50KGVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICByZXR1cm4gdG90YWxfZ2FzX3VzZWQsIG91dHB1dC5sb2dzLCBvdXRwdXQuaGFzX2VycmVkCpRoB12UKGg/WLgCAABkZWYgcHJvY2Vzc190cmFuc2FjdGlvbigKICAgIGVudjogdm0uRW52aXJvbm1lbnQsIHR4OiBUcmFuc2FjdGlvbgopIC0+IFR1cGxlW1UyNTYsIFR1cGxlW0xvZywgLi4uXSwgYm9vbF06CiAgICBlbnN1cmUodmFsaWRhdGVfdHJhbnNhY3Rpb24odHgpLCBJbnZhbGlkQmxvY2spCgogICAgc2VuZGVyID0gZW52Lm9yaWdpbgogICAgc2VuZGVyX2FjY291bnQgPSBnZXRfYWNjb3VudChlbnYuc3RhdGUsIHNlbmRlcikKICAgIGdhc19mZWUgPSB0eC5nYXMgKiB0eC5nYXNfcHJpY2UKICAgIGVuc3VyZShzZW5kZXJfYWNjb3VudC5ub25jZSA9PSB0eC5ub25jZSwgSW52YWxpZEJsb2NrKQogICAgZW5zdXJlKHNlbmRlcl9hY2NvdW50LmJhbGFuY2UgPj0gZ2FzX2ZlZSArIHR4LnZhbHVlLCBJbnZhbGlkQmxvY2spCiAgICBlbnN1cmUoc2VuZGVyX2FjY291bnQuY29kZSA9PSBieXRlYXJyYXkoKSwgSW52YWxpZEJsb2NrKQoKICAgIGdhcyA9IHR4LmdhcyAtIGNhbGN1bGF0ZV9pbnRyaW5zaWNfY29zdCh0eCkKICAgIGluY3JlbWVudF9ub25jZShlbnYuc3RhdGUsIHNlbmRlcikKICAgIHNlbmRlcl9iYWxhbmNlX2FmdGVyX2dhc19mZWUgPSBzZW5kZXJfYWNjb3VudC5iYWxhbmNlIC0gZ2FzX2ZlZQogICAgc2V0X2FjY291bnRfYmFsYW5jZShlbnYuc3RhdGUsIHNlbmRlciwgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfZ2FzX2ZlZSkKCiAgICCUhZSBlH2UKGgFaAZoIGriJwAAaCFoA2gdaERoH0sAdWJq2xIAACmBlH2UKGgFaAZoB12UaD9YLgEAAHByZWFjY2Vzc2VkX2FkZHJlc3NlcyA9IHNldCgpCiAgICBwcmVhY2Nlc3NlZF9zdG9yYWdlX2tleXMgPSBzZXQoKQogICAgaWYgaXNpbnN0YW5jZSh0eCwgQWNjZXNzTGlzdFRyYW5zYWN0aW9uKToKICAgICAgICBmb3IgKGFkZHJlc3MsIGtleXMpIGluIHR4LmFjY2Vzc19saXN0OgogICAgICAgICAgICBwcmVhY2Nlc3NlZF9hZGRyZXNzZXMuYWRkKGFkZHJlc3MpCiAgICAgICAgICAgIGZvciBrZXkgaW4ga2V5czoKICAgICAgICAgICAgICAgIHByZWFjY2Vzc2VkX3N0b3JhZ2Vfa2V5cy5hZGQoKGFkZHJlc3MsIGtleSkpCgogICAglIWUgZR9lChoBWgGaCBq6icAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGriJwAAaCFoA2gdaERoH0sAdWJoP4x7bWVzc2FnZSA9IHByZXBhcmVfbWVzc2FnZSgKICAgICAgICBzZW5kZXIsCiAgICAgICAgdHgudG8sCiAgICAgICAgdHgudmFsdWUsCiAgICAgICAgdHguZGF0YSwKICAgICAgICBnYXMsCiAgICAgICAgZW52LAogICAglIWUgZR9lChoBWgGaCBq4icAAGghaANoHWhEaB9LAHViatsSAAApgZR9lChoBWgGaAddlGg/jIJwcmVhY2Nlc3NlZF9hZGRyZXNzZXM9ZnJvemVuc2V0KHByZWFjY2Vzc2VkX2FkZHJlc3NlcyksCiAgICAgICAgcHJlYWNjZXNzZWRfc3RvcmFnZV9rZXlzPWZyb3plbnNldChwcmVhY2Nlc3NlZF9zdG9yYWdlX2tleXMpLAogICAglIWUgZR9lChoBWgGaCBq/CcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcatoSAABoIGriJwAAaCFoA2gdaERoH0sAdWJoP1jpBAAAKQoKICAgIG91dHB1dCA9IHByb2Nlc3NfbWVzc2FnZV9jYWxsKG1lc3NhZ2UsIGVudikKCiAgICBnYXNfdXNlZCA9IHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdAogICAgZ2FzX3JlZnVuZCA9IG1pbihnYXNfdXNlZCAvLyAyLCBvdXRwdXQucmVmdW5kX2NvdW50ZXIpCiAgICBnYXNfcmVmdW5kX2Ftb3VudCA9IChvdXRwdXQuZ2FzX2xlZnQgKyBnYXNfcmVmdW5kKSAqIHR4Lmdhc19wcmljZQogICAgdHJhbnNhY3Rpb25fZmVlID0gKHR4LmdhcyAtIG91dHB1dC5nYXNfbGVmdCAtIGdhc19yZWZ1bmQpICogdHguZ2FzX3ByaWNlCiAgICB0b3RhbF9nYXNfdXNlZCA9IGdhc191c2VkIC0gZ2FzX3JlZnVuZAoKICAgICMgcmVmdW5kIGdhcwogICAgc2VuZGVyX2JhbGFuY2VfYWZ0ZXJfcmVmdW5kID0gKAogICAgICAgIGdldF9hY2NvdW50KGVudi5zdGF0ZSwgc2VuZGVyKS5iYWxhbmNlICsgZ2FzX3JlZnVuZF9hbW91bnQKICAgICkKICAgIHNldF9hY2NvdW50X2JhbGFuY2UoZW52LnN0YXRlLCBzZW5kZXIsIHNlbmRlcl9iYWxhbmNlX2FmdGVyX3JlZnVuZCkKCiAgICAjIHRyYW5zZmVyIG1pbmVyIGZlZXMKICAgIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZSA9ICgKICAgICAgICBnZXRfYWNjb3VudChlbnYuc3RhdGUsIGVudi5jb2luYmFzZSkuYmFsYW5jZSArIHRyYW5zYWN0aW9uX2ZlZQogICAgKQogICAgaWYgY29pbmJhc2VfYmFsYW5jZV9hZnRlcl9taW5pbmdfZmVlICE9IDA6CiAgICAgICAgc2V0X2FjY291bnRfYmFsYW5jZSgKICAgICAgICAgICAgZW52LnN0YXRlLCBlbnYuY29pbmJhc2UsIGNvaW5iYXNlX2JhbGFuY2VfYWZ0ZXJfbWluaW5nX2ZlZQogICAgICAgICkKICAgIGVsaWYgYWNjb3VudF9leGlzdHNfYW5kX2lzX2VtcHR5KGVudi5zdGF0ZSwgZW52LmNvaW5iYXNlKToKICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBlbnYuY29pbmJhc2UpCgogICAgZm9yIGFkZHJlc3MgaW4gb3V0cHV0LmFjY291bnRzX3RvX2RlbGV0ZToKICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIGZvciBhZGRyZXNzIGluIG91dHB1dC50b3VjaGVkX2FjY291bnRzOgogICAgICAgIGlmIGFjY291bnRfZXhpc3RzX2FuZF9pc19lbXB0eShlbnYuc3RhdGUsIGFkZHJlc3MpOgogICAgICAgICAgICBkZXN0cm95X2FjY291bnQoZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIHJldHVybiB0b3RhbF9nYXNfdXNlZCwgb3V0cHV0LmxvZ3MsIG91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bG5hbWWUahoqAAB1aBxqTw8AAGgdaB5oH00aAmggahEqAAB1Ymp5DwAAKYGUfZQoaAVoBmgHXZQoaGkpgZR9lChoBYw/Q2FsY3VsYXRlcyB0aGUgZ2FzIHRoYXQgaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQulGgHXZRoP4w/Q2FsY3VsYXRlcyB0aGUgZ2FzIHRoYXQgaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGlzIHN0YXJ0ZWQulIWUgZR9lChoBWgGaCBqWCoAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdaB5oH00dAmggalUqAAB1YmhpKYGUfZQoaAVYEQIAAFRoZSBpbnRyaW5zaWMgY29zdCBvZiB0aGUgdHJhbnNhY3Rpb24gaXMgY2hhcmdlZCBiZWZvcmUgZXhlY3V0aW9uIGhhcwpiZWd1bi4gRnVuY3Rpb25zL29wZXJhdGlvbnMgaW4gdGhlIEVWTSBjb3N0IG1vbmV5IHRvIGV4ZWN1dGUgc28gdGhpcwppbnRyaW5zaWMgY29zdCBpcyBmb3IgdGhlIG9wZXJhdGlvbnMgdGhhdCBuZWVkIHRvIGJlIHBhaWQgZm9yIGFzIHBhcnQgb2YKdGhlIHRyYW5zYWN0aW9uLiBEYXRhIHRyYW5zZmVyLCBmb3IgZXhhbXBsZSwgaXMgcGFydCBvZiB0aGlzIGludHJpbnNpYwpjb3N0LiBJdCBjb3N0cyBldGhlciB0byBzZW5kIGRhdGEgb3ZlciB0aGUgd2lyZSBhbmQgdGhhdCBldGhlciBpcwphY2NvdW50ZWQgZm9yIGluIHRoZSBpbnRyaW5zaWMgY29zdCBjYWxjdWxhdGVkIGluIHRoaXMgZnVuY3Rpb24uIFRoaXMKaW50cmluc2ljIGNvc3QgbXVzdCBiZSBjYWxjdWxhdGVkIGFuZCBwYWlkIGZvciBiZWZvcmUgZXhlY3V0aW9uIGluIG9yZGVyCmZvciBhbGwgb3BlcmF0aW9ucyB0byBiZSBpbXBsZW1lbnRlZC6UaAddlGg/WBECAABUaGUgaW50cmluc2ljIGNvc3Qgb2YgdGhlIHRyYW5zYWN0aW9uIGlzIGNoYXJnZWQgYmVmb3JlIGV4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ICAgICBlbHNlOgogICAgICAgICAgICBkYXRhX2Nvc3QgKz0gVFhfREFUQV9DT1NUX1BFUl9OT05fWkVSTwoKICAgIGlmIHR4LnRvID09IEJ5dGVzMChiIiIpOgogICAgICAgIGNyZWF0ZV9jb3N0ID0gVFhfQ1JFQVRFX0NPU1QKICAgIGVsc2U6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSAwCgogICAgcmV0dXJuIFVpbnQoVFhfQkFTRV9DT1NUICsgZGF0YV9jb3N0ICsgY3JlYXRlX2Nvc3QpCpRoB12UKGg/WFMBAABkZWYgY2FsY3VsYXRlX2ludHJpbnNpY19jb3N0KHR4OiBUcmFuc2FjdGlvbikgLT4gVWludDoKICAgIGRhdGFfY29zdCA9IDAKCiAgICBmb3IgYnl0ZSBpbiB0eC5kYXRhOgogICAgICAgIGlmIGJ5dGUgPT0gMDoKICAgICAgICAgICAgZGF0YV9jb3N0ICs9IFRYX0RBVEFfQ09TVF9QRVJfWkVSTwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGRhdGFfY29zdCArPSBUWF9EQVRBX0NPU1RfUEVSX05PTl9aRVJPCgogICAgaWYgdHgudG8gPT0gQnl0ZXMwKGIiIik6CiAgICAgICAgY3JlYXRlX2Nvc3QgPSBUWF9DUkVBVEVfQ09TVAogICAgZWxzZToKICAgICAgICBjcmVhdGVfY29zdCA9IDAKCiAgICCUhZSBlH2UKGgFaAZoIGpBKwAAaCFoA2gdaERoH0sAdWJq2xIAACmBlH2UKGgFaAZoB12UaD9YAAEAAGFjY2Vzc19saXN0X2Nvc3QgPSAwCiAgICBpZiBpc2luc3RhbmNlKHR4LCBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pOgogICAgICAgIGZvciAoX2FkZHJlc3MsIGtleXMpIGluIHR4LmFjY2Vzc19saXN0OgogICAgICAgICAgICBhY2Nlc3NfbGlzdF9jb3N0ICs9IFRYX0FDQ0VTU19MSVNUX0FERFJFU1NfQ09TVAogICAgICAgICAgICBhY2Nlc3NfbGlzdF9jb3N0ICs9IGxlbihrZXlzKSAqIFRYX0FDQ0VTU19MSVNUX1NUT1JBR0VfS0VZX0NPU1QKCiAgICCUhZSBlH2UKGgFaAZo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dHVybiBrZWNjYWsyNTYoCiAgICAgICAgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgKQogICAgICAgICkKICAgICkKlGgHXZRoP1gkAQAAZGVmIHNpZ25pbmdfaGFzaF9wcmUxNTUodHg6IFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4Lm5vbmNlLAogICAgICAgICAgICAgICAgdHguZ2FzX3ByaWNlLAogICAgICAgICAgICAgICAgdHguZ2FzLAogICAgICAgICAgICAgICAgdHgudG8sCiAgICAgICAgICAgICAgICB0eC52YWx1ZSwKICAgICAgICAgICAgICAgIHR4LmRhdGEsCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpSFlIGUfZQoaAVoBmggagUvAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjFMvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9tdWlyX2dsYWNpZXIvc3BlYy5weZSMCXhtbDpzcGFjZZRqGQUAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGqmDwAASwFzjAdsaW5lbm9zlIl1aBxqjg8AAGgdaB5oH01hAmggasctAAB1YmVoDn2UKGgQXZRqGgQAAGFoE12UaBVdlIwTc2lnbmluZ19oYXNoX3ByZTE1NZRhaBddlGgZXZR1aBxoM2gdaB5oH01RAmggahkPAABoIWgDdWJoNCmBlH2UKGgFaAZoB12U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AAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasQUAABoHU5oH05oIGoSMAAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqvFAAAaB1OaB9OaCBqlC8AAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqqhQAAGgdTmgfTmggaoMvAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcangPAABoHWgeaB9OaCBqPy8AAHViZWgOfZQoaBBdlGgTXZQoanwvAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRqfC8AAIwHb2JqdHlwZZRqWTAAAIwIZGVzY3R5cGWUalkwAACMB25vaW5kZXiUiXVoHGpKDwAAaB1OaB9OaCBqIy8AAHViao8PAAApgZR9lChoBVhsAQAAZGVmIHNpZ25pbmdfaGFzaF8xNTUodHg6IFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4Lm5vbmNlLAogICAgICAgICAgICAgICAgdHguZ2FzX3ByaWNlLAogICAgICAgICAgICAgICAgdHguZ2FzLAogICAgICAgICAgICAgICAgdHgudG8sCiAgICAgICAgICAgICAgICB0eC52YWx1ZSwKICAgICAgICAgICAgICAgIHR4LmRhdGEsCiAgICAgICAgICAgICAgICBVaW50KDEpLAogICAgICAgICAgICAgICAgVWludCgwKSwKICAgICAgICAgICAgICAgIFVpbnQoMCksCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpRoB12UaD9YbAEAAGRlZiBzaWduaW5nX2hhc2hfMTU1KHR4OiBUcmFuc2FjdGlvbikgLT4gSGFzaDMyOgogICAgcmV0dXJuIGtlY2NhazI1NigKICAgICAgICBybHAuZW5jb2RlKAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4Lmdh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ZWgOfZQoaBBdlGgTXZQoat0wAACMCGZ1bmN0aW9ulGVoFV2UaBddlGgZXZSMBmRvbWFpbpRq3TAAAIwHb2JqdHlwZZRquzEAAIwIZGVzY3R5cGWUarsxAACMB25vaW5kZXiUiXVoHGpKDwAAaB1OaB9OaCBqfzAAAHViao8PAAApgZR9lChoBVh7AQAAZGVmIHNpZ25pbmdfaGFzaF8yOTMwKHR4OiBBY2Nlc3NMaXN0VHJhbnNhY3Rpb24pIC0+IEhhc2gzMjoKICAgIHJldHVybiBrZWNjYWsyNTYoCiAgICAgICAgYiJceDAxIgogICAgICAgICsgcmxwLmVuY29kZSgKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgdHguY2hhaW5faWQsCiAgICAgICAgICAgICAgICB0eC5ub25jZSwKICAgICAgICAgICAgICAgIHR4Lmdhc19wcmljZSwKICAgICAgICAgICAgICAgIHR4LmdhcywKICAgICAgICAgICAgICAgIHR4LnRvLAogICAgICAgICAgICAgICAgdHgudmFsdWUsCiAgICAgICAgICAgICAgICB0eC5kYXRhLAogICAgICAgICAgICAgICAgdHguYWNjZXNzX2xpc3QsCiAgICAgICAgICAgICkKICAgICAgICApCiAgICApCpRoB12UaD9YewEAAGRlZiBzaWduaW5nX2hhc2hfMjkzMCh0eDogQWNjZXNzTGlzdFRyYW5zYWN0aW9uKSAtPiBIYXNoMzI6CiAgICByZXR1cm4ga2VjY2FrMjU2KAogICAgICAgIGIiXHgwMSIKICAgICAgICArIHJscC5lbmNvZGUoCiAgICAgICAgICAgICgKICAgICAgICAgICAgICAgIHR4LmNoYWluX2lkLAogICAgICAgICAgICAgICAgdHgubm9uY2UsCiAgICAgICAgICAgICAgICB0eC5nYXNfcHJpY2UsCiAgICAgICAgICAgICAgICB0eC5nYXMsCiAgICAgICAgICAgICAgICB0eC50bywKICAgICAgICAgICAgICAgIHR4LnZhbHVlLAogICAgICAgICAgICAgICAgdHguZGF0YSwKICAgICAgICAgICAgICAgIHR4LmFjY2Vzc19saXN0LAogICAgICAgICAgICApCiAgICAg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Dn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHWgeaB9NhgJoIGpDMgAAdWJoaSmBlH2UKGgFWCgCAABQcmlvciB0byB1c2luZyB0aGUgYGBrZWNjYWsyNTZgYCBoYXNoIGZ1bmN0aW9uLCB0aGUgaGVhZGVyIG11c3QgYmUKZW5jb2RlZCB1c2luZyB0aGUgUmVjdXJzaXZlLUxlbmd0aCBQcmVmaXguIFNlZSA6cmVmOmBybHBgLgpSTFAgZW5jb2RpbmcgdGhlIGhlYWRlciBjb252ZXJ0cyBpdCBpbnRvIGEgc3BhY2UtZWZmaWNpZW50IGZvcm1hdCB0aGF0CmFsbG93cyBmb3IgZWFzeSB0cmFuc2ZlciBvZiBkYXRhIGJldHdlZW4gbm9kZXMuIFRoZSBwdXJwb3NlIG9mIFJMUCBpcyB0bwplbmNvZGUgYXJiaXRyYXJpbHkgbmVzdGVkIGFycmF5cyBvZiBiaW5hcnkgZGF0YSwgYW5kIFJMUCBpcyB0aGUgcHJpbWFyeQplbmNvZGluZyBtZXRob2QgdXNlZCB0byBzZXJpYWxpemUgb2JqZWN0cyBpbiBFdGhlcmV1bSdzIGV4ZWN1dGlvbiBsYXllci4KVGhlIG9ubHkgcHVycG9zZSBvZiBSTFAgaXMgdG8gZW5jb2RlIHN0cnVjdHVyZTsgZW5jb2Rpbmcgc3BlY2lmaWMgZGF0YQp0eXBlcyAoZS5nLiBzdHJpbmdzLCBmbG9hdHMpIGlzIGxlZnQgdXAgdG8gaGlnaGVyLW9yZGVyIHByb3RvY29scy6UaAddlChoP4wTUHJpb3IgdG8gdXNpbmcgdGhlIJSFlIGUfZQoaAVoBmggan4yAABoIWgDaB1oRGgfSwB1YmqPBQAAKYGUfZQoaAWMDWBga2VjY2FrMjU2YGCUaAddlGg/jAlrZWNjYWsyNTaUhZSBlH2UKGgFaAZoIGqGMgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqOBQAAaB1OaB9OaCBqfjIAAHViaD+MUiBoYXNoIGZ1bmN0aW9uLCB0aGUgaGVhZGVyIG11c3QgYmUKZW5jb2RlZCB1c2luZyB0aGUgUmVjdXJzaXZlLUxlbmd0aCBQcmVmaXguIFNlZSCUhZSBlH2UKGgF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biBUcnVlCpRoB12UaD9YgQEAAGRlZiBjaGVja19nYXNfbGltaXQoZ2FzX2xpbWl0OiBVaW50LCBwYXJlbnRfZ2FzX2xpbWl0OiBVaW50KSAtPiBib29sOgogICAgbWF4X2FkanVzdG1lbnRfZGVsdGEgPSBwYXJlbnRfZ2FzX2xpbWl0IC8vIEdBU19MSU1JVF9BREpVU1RNRU5UX0ZBQ1RPUgogICAgaWYgZ2FzX2xpbWl0ID49IHBhcmVudF9nYXNfbGltaXQgKyBtYXhfYWRqdXN0bWVudF9kZWx0YToKICAgICAgICByZXR1cm4gRmFsc2UKICAgIGlmIGdhc19saW1pdCA8PSBwYXJlbnRfZ2FzX2xpbWl0IC0gbWF4X2FkanVzdG1lbnRfZGVsdGE6CiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICBpZiBnYXNfbGltaXQgPCBHQVNfTElNSVRfTUlOSU1VTToKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICByZXR1cm4gVHJ1ZQqUhZSBlH2UKGgFaAZoIGqyNQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxTL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vbXVpcl9nbGFjaWVyL3NwZWMucHmUjAl4bWw6c3BhY2WUahkFAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqpg8AAEsBc4wHbGluZW5vc5SJdWgcao4PAABoHWgeaB9NvgJoIGqoMwAAdWJlaA59lChoEF2UaqMEAABhaBNdlGgVXZSMD2NoZWNrX2dhc19saW1pdJRhaBddlGgZXZR1aBxoM2gdaB5oH02iAmggahkPAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMGmNhbGN1bGF0ZV9ibG9ja19kaWZmaWN1bHR5lGgHXZRoP4waY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHmUhZSBlH2UKGgFaAZoIGrTNQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGg4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AGgdTmgfTmggatA1AAB1YmqPDwAAKYGUfZQoaAVYjQQAAGRlZiBjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eSgKICAgIGJsb2NrX251bWJlcjogVWludCwKICAgIGJsb2NrX3RpbWVzdGFtcDogVTI1NiwKICAgIHBhcmVudF90aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfZGlmZmljdWx0eTogVWludCwKICAgIHBhcmVudF9oYXNfb21tZXJzOiBib29sLAopIC0+IFVpbnQ6CiAgICBvZmZzZXQgPSAoCiAgICAgICAgaW50KHBhcmVudF9kaWZmaWN1bHR5KQogICAgICAgIC8vIDIwNDgKICAgICAgICAqIG1heCgKICAgICAgICAgICAgKDIgaWYgcGFyZW50X2hhc19vbW1lcnMgZWxzZSAxKQogICAgICAgICAgICAtIGludChibG9ja190aW1lc3RhbXAgLSBwYXJlbnRfdGltZXN0YW1wKSAvLyA5LAogICAgICAgICAgICAtOTksCiAgICAgICAgKQogICAgKQogICAgZGlmZmljdWx0eSA9IGludChwYXJlbnRfZGlmZmljdWx0eSkgKyBvZmZzZXQKICAgICMgSGlzdG9yaWNhbCBOb3RlOiBUaGUgZGlmZmljdWx0eSBib21iIHdhcyBub3QgcHJlc2VudCBpbiBFdGhlcmV1bSBhdCB0aGUKICAgICMgc3RhcnQgb2YgRnJvbnRpZXIsIGJ1dCB3YXMgYWRkZWQgc2hvcnRseSBhZnRlciBsYXVuY2guIEhvd2V2ZXIgc2luY2UgdGhlCiAgICAjIGJvbWIgaGFzIG5vIGVmZmVjdCBwcmlvciB0byBibG9jayAyMDAwMDAgd2UgcHJldGVuZCBpdCBleGlzdGVkIGZyb20KICAgICMgZ2VuZXNpcy4KICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9nby1ldGhlcmV1bS9wdWxsLzE1ODgKICAgIG51bV9ib21iX3BlcmlvZHMgPSAoKGludChibG9ja19udW1iZXIpIC0gQk9NQl9ERUxBWV9CTE9DS1MpIC8vIDEwMDAwMCkgLSAyCiAgICBpZiBudW1fYm9tYl9wZXJpb2RzID49IDA6CiAgICAgICAgZGlmZmljdWx0eSArPSAyKipudW1fYm9tYl9wZXJpb2RzCgogICAgIyBTb21lIGNsaWVudHMgcmFpc2UgdGhlIGRpZmZpY3VsdHkgdG8gYE1JTklNVU1fRElGRklDVUxUWWAgcHJpb3IgdG8gYWRkaW5nCiAgICAjIHRoZSBib21iLiBUaGlzIGJ1ZyBkb2VzIG5vdCBtYXR0ZXIgYmVjYXVzZSB0aGUgZGlmZmljdWx0eSBpcyBhbHdheXMgbXVjaAogICAgIyBncmVhdGVyIHRoYW4gYE1JTklNVU1fRElGRklDVUxUWWAgb24gTWFpbm5ldC4KICAgIHJldHVybiBVaW50KG1heChkaWZmaWN1bHR5LCBNSU5JTVVNX0RJRkZJQ1VMVFkpKQqUaAddlGg/WI0EAABkZWYgY2FsY3VsYXRlX2Jsb2NrX2RpZmZpY3VsdHkoCiAgICBibG9ja19udW1iZXI6IFVpbnQsCiAgICBibG9ja190aW1lc3RhbXA6IFUyNTYsCiAgICBwYXJlbnRfdGltZXN0YW1wOiBVMjU2LAogICAgcGFyZW50X2RpZmZpY3VsdHk6IFVpbnQsCiAgICBwYXJlbnRfaGFzX29tbWVyczogYm9vbCwKKSAtPiBVaW50OgogICAgb2Zmc2V0ID0gKAogICAgICAgIGludChwYXJlbnRfZGlmZmljdWx0eSkKICAgICAgICAvLyAyMDQ4CiAgICAgICAgKiBtYXgoCiAgICAgICAgICAgICgyIGlmIHBhcmVudF9oYXNfb21tZXJzIGVsc2UgMSkKICAgICAgICAgICAgLSBpbnQoYmxvY2tfdGltZXN0YW1wIC0gcGFyZW50X3RpbWVzdGFtcCkgLy8gOSwKICAgICAgICAgICAgLTk5LAogICAgICAgICkKICAgICkKICAgIGRpZmZpY3VsdHkgPSBpbnQocGFyZW50X2RpZmZpY3VsdHkpICsgb2Zmc2V0CiAgICAjIEhpc3RvcmljYWwgTm90ZTogVGhlIGRpZmZpY3VsdHkgYm9tYiB3YXMgbm90IHByZXNlbnQgaW4gRXRoZXJldW0gYXQgdGhlCiAgICAjIHN0YXJ0IG9mIEZyb250aWVyLCBidXQgd2FzIGFkZGVkIHNob3J0bHkgYWZ0ZXIgbGF1bmNoLiBIb3dldmVyIHNpbmNlIHRoZQogICAgIyBib21iIGhhcyBubyBlZmZlY3QgcHJpb3IgdG8gYmxvY2sgMjAwMDAwIHdlIHByZXRlbmQgaXQgZXhpc3RlZCBmcm9tCiAgICAjIGdlbmVzaXMuCiAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vZ28tZXRoZXJldW0vcHVsbC8xNTg4CiAgICBudW1fYm9tYl9wZXJpb2RzID0gKChpbnQoYmxvY2tfbnVtYmVyKSAtIEJPTUJfREVMQVlfQkxPQ0tTKSAvLyAxMDAwMDApIC0gMgogICAgaWYgbnVtX2JvbWJfcGVyaW9kcyA+PSAwOgogICAgICAgIGRpZmZpY3VsdHkgKz0gMioqbnVtX2JvbWJfcGVyaW9kcwoKICAgICMgU29tZSBjbGllbnRzIHJhaXNlIHRoZSBkaWZmaWN1bHR5IHRvIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIHByaW9yIHRvIGFkZGluZwogICAgIyB0aGUgYm9tYi4gVGhpcyBidWcgZG9lcyBub3QgbWF0dGVyIGJlY2F1c2UgdGhlIGRpZmZpY3VsdHkgaXMgYWx3YXlzIG11Y2gKICAgICMgZ3JlYXRlciB0aGFuIGBNSU5JTVVNX0RJRkZJQ1VMVFlgIG9uIE1haW5uZXQuCiAgICByZXR1cm4gVWludChtYXgoZGlmZmljdWx0eSwgTUlOSU1VTV9ESUZGSUNVTFRZKSkKlIWUgZR9lChoBWgGaCBqqDgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMUy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL211aXJfZ2xhY2llci9zcGVjLnB5lIwJeG1sOnNwYWNllGoZBQAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UaqYPAABLAXOMB2xpbmVub3OUiXVoHGqODwAAaB1oHmgfTegCaCBq0DUAAHViZWgOfZQoaBBdlGrFBAAAYWgTXZRoFV2UjBpjYWxjdWxhdGVfYmxvY2tfZGlmZmljdWx0eZRhaBddlGgZXZR1aBxoM2gdaB5oH03DAmggahkPAABoIWgDdWJlaA59lChoEF2UajEBAABhaBNdlGgVXZSMDm1vZHVsZSBkZXRhaWxzlGFoF12UaBldlHVoHGgzaB1oHmgfS0hoIGg1aCFoA3ViZWgOfZQoaBBdlIwWZXRoZXJldW0tc3BlY2lmaWNhdGlvbpRhaBNdlGgVXZSMFmV0aGVyZXVtIHNwZWNpZmljYXRpb26UYWgXXZRoGV2UdWgcaDNoHWgeaB9LBGggaANoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGhEdWgcaAGMDmN1cnJlbnRfc291cmNllGhEjAxjdXJyZW50X2xpbmWUSwCMCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lCiMDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBIwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5ROjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwReG1sY2hhcnJlZnJlcGxhY2WUjA5lcnJvcl9lbmNvZGluZ5SMBXV0Zi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjBNyZWNvcmRfZGVwZW5kZW5jaWVzlIwOZG9jdXRpbHMudXRpbHOUjA5EZXBlbmRlbmN5TGlzdJSTlCmBlH2UKIwEbGlzdJRdlIwEZmlsZZROdWKMBmNvbmZpZ5ROjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZROjAxfZGVzdGluYXRpb26UjDFkb2MvZGlmZnMvbXVpcl9nbGFjaWVyX2Jlcmxpbi9zcGVjL2luZGV4LnBpY2tsZTY0lIwNX2NvbmZpZ19maWxlc5RdlIwRbGluZV9sZW5ndGhfbGltaXSUTRAnjAl0YWJfd2lkdGiUSwiMEHN5bnRheF9oaWdobGlnaHSUjARsb25nlIwMc21hcnRfcXVvdGVzlImME3NtYXJ0cXVvdGVzX2xvY2FsZXOUTowdY2hhcmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXCUiYwGd3JpdGVylIwDeG1slIwZY29tcGFyZV9zZWN0aW9uc19ieV9uYW1lc5RLAYwMZHVtcF9yc3RkaWZmlE6MBV9ib3RolH2UKGg4TowJZ2VuZXJhdG9ylE6MCWRhdGVzdGFtcJROjAtzb3VyY2VfbGlua5ROjApzb3VyY2VfdXJslE6MDXRvY19iYWNrbGlua3OUaoIFAACMEmZvb3Rub3RlX2JhY2tsaW5rc5RLAYwNc2VjdG51bV94Zm9ybZRLAYwOZG9jdGl0bGVfeGZvcm2USwGMDWRvY2luZm9feGZvcm2USwGMEnNlY3RzdWJ0aXRsZV94Zm9ybZRLAIwOc3RyaXBfY29tbWVudHOUTowOaW5wdXRfZW5jb2RpbmeUTowcaW5wdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMBnN0cmljdJSMDWxhbmd1YWdlX2NvZGWUjAJlbpSMDnBlcF9yZWZlcmVuY2VzlE6MDHBlcF9iYXNlX3VybJSMH2h0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy+UjBVwZXBfZmlsZV91cmxfdGVtcGxhdGWUjAhwZXAtJTA0ZJSMDnJmY19yZWZlcmVuY2VzlE6MDHJmY19iYXNlX3VybJSMG2h0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL5SMHXRyaW1fZm9vdG5vdGVfcmVmZXJlbmNlX3NwYWNllE6MFmZpbGVfaW5zZXJ0aW9uX2VuYWJsZWSUSwGMC3Jhd19lbmFibGVklEsBjA5hdXRvX2lkX3ByZWZpeJSMAmlklIwJaWRfcHJlZml4lGgGjBtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXOUTowNc3RyaXBfY2xhc3Nlc5ROdYwEYm90aJR9lIwKX29wdGlvbnNUb5SMBV9ib3RolIwLX29sZF9zb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzLy50b3gvZG9jcy9zdGFnZTBfb3V0L2F1dG9hcGkvlIwLX25ld19zb3VyY2WUjAlkb2MvZGlmZnOUaiM5AABqJDkAAIwWaWdub3JlX2luX3NlY3Rpb25fbmFtZZRdlCiMBG11aXKUjAdnbGFjaWVylIwGYmVybGlulGV1YowIcmVwb3J0ZXKUTowQaW5kaXJlY3RfdGFyZ2V0c5RdlIwRc3Vic3RpdHV0aW9uX2RlZnOUfZSMEnN1YnN0aXR1dGlvbl9uYW1lc5R9lIwIcmVmbmFtZXOUfZSMBnJlZmlkc5R9lIwHbmFtZWlkc5R9lIwJbmFtZXR5cGVzlH2UaBB9lIwNZm9vdG5vdGVfcmVmc5R9lIwNY2l0YXRpb25fcmVmc5R9lIwNYXV0b2Zvb3Rub3Rlc5RdlIwRYXV0b2Zvb3Rub3RlX3JlZnOUXZSMEHN5bWJvbF9mb290bm90ZXOUXZSMFHN5bWJvbF9mb290bm90ZV9yZWZzlF2UjAlmb290bm90ZXOUXZSMCWNpdGF0aW9uc5RdlIwSYXV0b2Zvb3Rub3RlX3N0YXJ0lEsBjBVzeW1ib2xfZm9vdG5vdGVfc3RhcnSUSwCMCmlkX2NvdW50ZXKUjAtjb2xsZWN0aW9uc5SMB0NvdW50ZXKUk5R9lIWUUpSMDnBhcnNlX21lc3NhZ2VzlF2UjBJ0cmFuc2Zvcm1fbWVzc2FnZXOUXZSMC3RyYW5zZm9ybWVylE6MC2luY2x1ZGVfbG9nlF2UjApkZWNvcmF0aW9ulE5oIWgDdWIu