gASVBAABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIwybW9kdWxlLWV0aGVyZXVtLmJlcmxpbi52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnSUYYwHY2xhc3Nlc5RdlIwFbmFtZXOUXZSMCGR1cG5hbWVzlF2UjAhiYWNrcmVmc5RdlIwFaXNtb2SUiHWMB3RhZ25hbWWUaAmMBnNvdXJjZZSMcy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYmVybGluL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3SUjARsaW5llEsBjAZwYXJlbnSUaAOMCV9kb2N1bWVudJRoA3VijA9zcGhpbnguYWRkbm9kZXOUjAVpbmRleJSTlCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlCiMBHBhaXKUjDNtb2R1bGU7IGV0aGVyZXVtLmJlcmxpbi52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnSUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMOUV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBFbnZpcm9ubWVudGFsIEluc3RydWN0aW9uc5RoB12UaACMBFRleHSUk5SMOUV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBFbnZpcm9ubWVudGFsIEluc3RydWN0aW9uc5SFlIGUfZQoaAVoBmggaDpoIWgDaB2MXC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS8gPT4gZG9jL2RpZmZzlGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9LBGggaDVoIWgDdWJoAIwFdG9waWOUk5QpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjBFUYWJsZSBvZiBDb250ZW50c5RoB12UaD+MEVRhYmxlIG9mIENvbnRlbnRzlIWUgZR9lChoBWgGaCBoUGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sIaCBoTWghaAN1YmgAjAtidWxsZXRfbGlzdJSTlCmBlH2UKGgFaAZoB12UKGgAjAlsaXN0X2l0ZW2Uk5QpgZR9lChoBWgGaAddlGgAjAlwYXJhZ3JhcGiUk5QpgZR9lChoBWgGaAddlGgAjAlyZWZlcmVuY2WUk5QpgZR9lChoBWgGaAddlGg/jAxJbnRyb2R1Y3Rpb26UhZSBlH2UKGgFaAZoIGhvaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDGUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwMaW50cm9kdWN0aW9ulHVoHGhtaB1OaB9OaCBoanViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaGV1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaGBoIWgDdWJoZCmBlH2UKGgFaAZoB12UKGhpKYGUfZQoaAVoBmgHXZRobimBlH2UKGgFaAZoB12UaD+MD01vZHVsZSBDb250ZW50c5SFlIGUfZQoaAVoBmggaJFoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkMpRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjA9tb2R1bGUtY29udGVudHOUdWgcaG1oHU5oH05oIGiOdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBoi3ViaF8pgZR9lChoBWgGaAddlGhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAlGdW5jdGlvbnOUhZSBlH2UKGgFaAZoIGiwaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDOUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwJZnVuY3Rpb25zlHVoHGhtaB1OaB9OaCBorXViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaKp1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHU5oH05oIGindWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1OaB9OaCBoi3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBoYGghaAN1YmhkKYGUfZQoaAVoBmgHXZQoaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wOTW9kdWxlIERldGFpbHOUhZSBlH2UKGgFaAZoIGjeaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDSUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwObW9kdWxlLWRldGFpbHOUdWgcaG1oHU5oH05oIGjbdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oRGgfSwBoIGjYaCFoA3ViaF8pgZR9lChoBWgGaAddlChoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wHYWRkcmVzc5SFlIGUfZQoaAVoBmggaP1oIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkNZRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAdhZGRyZXNzlHVoHGhtaB1OaB9OaCBo+nViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaPd1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wHYmFsYW5jZZSFlIGUfZQoaAVoBmggah8BAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkNpRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAdiYWxhbmNllHVoHGhtaB1OaB9OaCBqHAEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggahkBAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wGb3JpZ2lulIWUgZR9lChoBWgGaCBqQQEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlIwDaWQ3lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMBm9yaWdpbpR1aBxobWgdTmgfTmggaj4BAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGo7AQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1oRGgfSwBoIGj0aCFoA3ViaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAVoBmgHXZRobimBlH2UKGgFaAZoB12UaD+MBmNhbGxlcpSFlIGUfZQoaAVoBmggamMBAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMA2lkOJRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAZjYWxsZXKUdWgcaG1oHU5oH05oIGpgAQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqXQEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBo9GghaAN1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAljYWxsdmFsdWWUhZSBlH2UKGgFaAZoIGqFAQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjANpZDmUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwJY2FsbHZhbHVllHVoHGhtaB1OaB9OaCBqggEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggan8BAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wMY2FsbGRhdGFsb2FklIWUgZR9lChoBWgGaCBqpwEAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlIwEaWQxMJRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAxjYWxsZGF0YWxvYWSUdWgcaG1oHU5oH05oIGqkAQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqoQEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBo9GghaAN1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAxjYWxsZGF0YXNpemWUhZSBlH2UKGgFaAZoIGrJAQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDExlGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMDGNhbGxkYXRhc2l6ZZR1aBxobWgdTmgfTmggasYBAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHU5oH05oIGrDAQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhjaB1oRGgfSwBoIGj0aCFoA3ViaGQpgZR9lChoBWgGaAddlGhpKYGUfZQoaAVoBmgHXZRobimBlH2UKGgFaAZoB12UaD+MDGNhbGxkYXRhY29weZSFlIGUfZQoaAVoBmggausBAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMBGlkMTKUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwMY2FsbGRhdGFjb3B5lHVoHGhtaB1OaB9OaCBq6AEAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggauUBAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wIY29kZXNpemWUhZSBlH2UKGgFaAZoIGoNAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDEzlGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMCGNvZGVzaXpllHVoHGhtaB1OaB9OaCBqCgIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggagcCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wIY29kZWNvcHmUhZSBlH2UKGgFaAZoIGovAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE0lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMCGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBqLAIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaikCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wIZ2FzcHJpY2WUhZSBlH2UKGgFaAZoIGpRAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE1lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMCGdhc3ByaWNllHVoHGhtaB1OaB9OaCBqTgIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggaksCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wLZXh0Y29kZXNpemWUhZSBlH2UKGgFaAZoIGpzAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE2lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMC2V4dGNvZGVzaXpllHVoHGhtaB1OaB9OaCBqcAIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggam0CAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wLZXh0Y29kZWNvcHmUhZSBlH2UKGgFaAZoIGqVAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE3lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMC2V4dGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBqkgIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggao8CAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wOcmV0dXJuZGF0YXNpemWUhZSBlH2UKGgFaAZoIGq3AgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE4lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMDnJldHVybmRhdGFzaXpllHVoHGhtaB1OaB9OaCBqtAIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggarECAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wOcmV0dXJuZGF0YWNvcHmUhZSBlH2UKGgFaAZoIGrZAgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDE5lGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMDnJldHVybmRhdGFjb3B5lHVoHGhtaB1OaB9OaCBq1gIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggatMCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wLZXh0Y29kZWhhc2iUhZSBlH2UKGgFaAZoIGr7AgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UjARpZDIwlGFoE12UaBVdlGgXXZRoGV2UjAVyZWZpZJSMC2V4dGNvZGVoYXNolHVoHGhtaB1OaB9OaCBq+AIAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdTmgfTmggavUCAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJoZCmBlH2UKGgFaAZoB12UaGkpgZR9lChoBWgGaAddlGhuKYGUfZQoaAVoBmgHXZRoP4wMc2VsZl9iYWxhbmNllIWUgZR9lChoBWgGaCBqHQMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlIwEaWQyMZRhaBNdlGgVXZRoF12UaBldlIwFcmVmaWSUjAxzZWxmLWJhbGFuY2WUdWgcaG1oHU5oH05oIGoaAwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqFwMAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBo9GghaAN1YmhkKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFaAZoB12UaG4pgZR9lChoBWgGaAddlGg/jAhiYXNlX2ZlZZSFlIGUfZQoaAVoBmggaj8DAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZSMBGlkMjKUYWgTXZRoFV2UaBddlGgZXZSMBXJlZmlklIwIYmFzZS1mZWWUdWgcaG1oHU5oH05oIGo8AwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1OaB9OaCBqOQMAAHViYWgOfZQoaBBdlGgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlGgXXZRoGV2UdWgcaGNoHWhEaB9LAGggaPRoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGheaB1oRGgfSwBoIGjYaCFoA3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoY2gdaERoH0sAaCBoYGghaAN1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaF5oHWhEaB9LAGggaE1oIWgDdWJlaA59lChoEF2UjBF0YWJsZS1vZi1jb250ZW50c5RhaBNdlCiMCGNvbnRlbnRzlIwFbG9jYWyUZWgVXZSMEXRhYmxlIG9mIGNvbnRlbnRzlGFoF12UaBldlHVoHGhLaB1oHmgfSwhoIGg1aCFoA3ViaDQpgZR9lChoBWgGaAddlChoOSmBlH2UKGgFjAxJbnRyb2R1Y3Rpb26UaAddlGg/jAxJbnRyb2R1Y3Rpb26UhZSBlH2UKGgFaAZoIGp7AwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGg4aB1oHmgfSwtoIGp4AwAAdWJoaSmBlH2UKGgFjDxJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEVWTSBlbnZpcm9ubWVudCByZWxhdGVkIGluc3RydWN0aW9ucy6UaAddlGg/jDxJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEVWTSBlbnZpcm9ubWVudCByZWxhdGVkIGluc3RydWN0aW9ucy6UhZSBlH2UKGgFaAZoIGqJAwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB1oHmgfSw1oIGp4AwAAdWJoAIwHY29tbWVudJSTlCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwJeG1sOnNwYWNllIwIcHJlc2VydmWUdWgcapcDAABoHU5oH05oIGp4AwAAdWJlaA59lChoEF2UaH5haBNdlGgVXZSMDGludHJvZHVjdGlvbpRhaBddlGgZXZR1aBxoM2gdaB5oH0sLaCBoNWghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwPTW9kdWxlIENvbnRlbnRzlGgHXZRoP4wPTW9kdWxlIENvbnRlbnRzlIWUgZR9lChoBWgGaCBqrgMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sTaCBqqwMAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwJRnVuY3Rpb25zlGgHXZRoP4wJRnVuY3Rpb25zlIWUgZR9lChoBWgGaCBqvwMAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoOGgdaB5oH0sXaCBqvAMAAGghaAN1YmgijBB0YWJ1bGFyX2NvbF9zcGVjlJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjARzcGVjlIwQXFh7MX17Mn1cWHsxfXsyfZR1aBxqzQMAAGgdjIQvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2Jlcmxpbi92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ3OjxhdXRvc3VtbWFyeT6UaB9LAGggarwDAABoIWgDdWKMFnNwaGlueC5leHQuYXV0b3N1bW1hcnmUjBFhdXRvc3VtbWFyeV90YWJsZZSTlCmBlH2UKGgFWNQEAAAKCgoKYWRkcmVzcwoKUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IGV4ZWN1dGluZyBhY2NvdW50IHRvIHRoZSBzdGFjay4KCmJhbGFuY2UKClB1c2hlcyB0aGUgYmFsYW5jZSBvZiB0aGUgZ2l2ZW4gYWNjb3VudCBvbnRvIHRoZSBzdGFjay4KCm9yaWdpbgoKUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0cmFuc2FjdGlvbiBzZW5kZXIgdG8gdGhlIHN0YWNrLgoKY2FsbGVyCgpQdXNoZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGNhbGxlciBvbnRvIHRoZSBzdGFjay4KCmNhbGx2YWx1ZQoKUHVzaCB0aGUgdmFsdWUgKGluIHdlaSkgc2VudCB3aXRoIHRoZSBjYWxsIG9udG8gdGhlIHN0YWNrLgoKY2FsbGRhdGFsb2FkCgpQdXNoIGEgd29yZCAoMzIgYnl0ZXMpIG9mIHRoZSBpbnB1dCBkYXRhIGJlbG9uZ2luZyB0byB0aGUgY3VycmVudAoKY2FsbGRhdGFzaXplCgpQdXNoIHRoZSBzaXplIG9mIGlucHV0IGRhdGEgaW4gY3VycmVudCBlbnZpcm9ubWVudCBvbnRvIHRoZSBzdGFjay4KCmNhbGxkYXRhY29weQoKQ29weSBhIHBvcnRpb24gb2YgdGhlIGlucHV0IGRhdGEgaW4gY3VycmVudCBlbnZpcm9ubWVudCB0byBtZW1vcnkuCgpjb2Rlc2l6ZQoKUHVzaCB0aGUgc2l6ZSBvZiBjb2RlIHJ1bm5pbmcgaW4gY3VycmVudCBlbnZpcm9ubWVudCBvbnRvIHRoZSBzdGFjay4KCmNvZGVjb3B5CgpDb3B5IGEgcG9ydGlvbiBvZiB0aGUgY29kZSBpbiBjdXJyZW50IGVudmlyb25tZW50IHRvIG1lbW9yeS4KCmdhc3ByaWNlCgpQdXNoIHRoZSBnYXMgcHJpY2UgdXNlZCBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLgoKZXh0Y29kZXNpemUKClB1c2ggdGhlIGNvZGUgc2l6ZSBvZiBhIGdpdmVuIGFjY291bnQgb250byB0aGUgc3RhY2suCgpleHRjb2RlY29weQoKQ29weSBhIHBvcnRpb24gb2YgYW4gYWNjb3VudCdzIGNvZGUgdG8gbWVtb3J5LgoKcmV0dXJuZGF0YXNpemUKClB1c2hlcyB0aGUgc2l6ZSBvZiB0aGUgcmV0dXJuIGRhdGEgYnVmZmVyIG9udG8gdGhlIHN0YWNrLgoKcmV0dXJuZGF0YWNvcHkKCkNvcGllcyBkYXRhIGZyb20gdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBjb2RlIHRvIG1lbW9yeQoKZXh0Y29kZWhhc2gKClJldHVybnMgdGhlIGtlY2NhazI1NiBoYXNoIG9mIGEgY29udHJhY3TigJlzIGJ5dGVjb2RlCgpzZWxmX2JhbGFuY2UKClB1c2hlcyB0aGUgYmFsYW5jZSBvZiB0aGUgY3VycmVudCBhZGRyZXNzIHRvIHRoZSBzdGFjay6UaAddlGgAjAV0YWJsZZSTlCmBlH2UKGgFaAZoB12UaACMBnRncm91cJSTlCmBlH2UKGgFaAZoB12UKGgAjAdjb2xzcGVjlJOUKYGUfZQoaAVoBmgHXZRoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhjb2x3aWR0aJRLCnVoHGrsAwAAaB1oRGgfSwBoIGrpAwAAaCFoA3Viau0DAAApgZR9lChoBWgGaAddlGgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGNvbHdpZHRolEtadWgcauwDAABoHWhEaB9LAGggaukDAABoIWgDdWJoAIwFdGJvZHmUk5QpgZR9lCho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ZXJsaW4udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50Lm9yaWdpbpSMCHJlZnRpdGxllIwyZXRoZXJldW0uYmVybGluLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5vcmlnaW6UdWgcaG1oHU5oH05oIGq4BAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MhC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYmVybGluL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDc6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqtQQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqDAQAAGgdTmgfTmggarIEAAB1YmoNBAAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjENQdXNoZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIHRyYW5zYWN0aW9uIHNlbmRlciB0byB0aGUgc3RhY2sulGgHXZRoP4xDUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0cmFuc2FjdGlvbiBzZW5kZXIgdG8gdGhlIHN0YWNrLpSFlIGUfZQoaAVoBmggaukEAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGrmBAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoMBAAAaB1OaB9OaCBqsgQAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqBwQAAGgdaERoH0sAaCBqBAQAAGghaAN1YmoIBAAAKYGUfZQoaAVoBmgHXZQoag0EAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMQjpvYmo6YGNhbGxlciA8ZXRoZXJldW0uYmVybGluLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jYWxsZXI+YJRoB12UaG4pgZR9lChoBWgGaAddlGoZBAAAKYGUfZQoaAVqDAUAAGgHXZRoP4wGY2FsbGVylIWUgZR9lChoBWgGaCBqEQUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoaiQEAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxqGAQAAGgdTmgfTmggag4FAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMMmV0aGVyZXVtLmJlcmxpbi52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY2FsbGVylIwIcmVmdGl0bGWUjDJldGhlcmV1bS5iZXJsaW4udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxlcpR1aBxobWgdTmgfTmggagoFAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGoHBQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoMBAAAaB1OaB9OaCBqBAUAAHViag0EAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMMFB1c2hlcyB0aGUgYWRkcmVzcyBvZiB0aGUgY2FsbGVyIG9udG8gdGhlIHN0YWNrLpRoB12UaD+MMFB1c2hlcyB0aGUgYWRkcmVzcyBvZiB0aGUgY2FsbGVyIG9udG8gdGhlIHN0YWNrLpSFlIGUfZQoaAVoBmggajsFAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9l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aG4pgZR9lChoBWgGaAddlGoZBAAAKYGUfZQoaAVqAgYAAGgHXZRoP4wMY2FsbGRhdGFzaXpllIWUgZR9lChoBWgGaCBqBwYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoaiQEAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxqGAQAAGgdTmgfTmggagQGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMOGV0aGVyZXVtLmJlcmxpbi52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY2FsbGRhdGFzaXpllIwIcmVmdGl0bGWUjDhldGhlcmV1bS5iZXJsaW4udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxkYXRhc2l6ZZR1aBxobWgdTmgfTmggagAGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGr9BQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoMBAAAaB1OaB9OaCBq+gUAAHViag0EAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMQlB1c2ggdGhlIHNpemUgb2YgaW5wdXQgZGF0YSBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MQlB1c2ggdGhlIHNpemUgb2YgaW5wdXQgZGF0YSBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpSFlIGUfZQoaAVoBmggajEGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4v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lChoBWgGaAddlGoZBAAAKYGUfZQoaAVq+AYAAGgHXZRoP4wIY29kZWNvcHmUhZSBlH2UKGgFaAZoIGr9BgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChqJAQAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGoYBAAAaB1OaB9OaCBq+gYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw0ZXRoZXJldW0uYmVybGluLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2RlY29weZSMCHJlZnRpdGxllIw0ZXRoZXJldW0uYmVybGluLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2RlY29weZR1aBxobWgdTmgfTmggavYGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGrzBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoMBAAAaB1OaB9OaCBq8AYAAHViag0EAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMPENvcHkgYSBwb3J0aW9uIG9mIHRoZSBjb2RlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LpRoB12UaD+MPENvcHkgYSBwb3J0aW9uIG9mIHRoZSBjb2RlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LpSFlIGUfZQoaAVoBmggaicHAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2lu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IWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGokBAAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcahgEAABoHU5oH05oIGrwBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDdldGhlcmV1bS5iZXJsaW4udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVjb3B5lIwIcmVmdGl0bGWUjDdldGhlcmV1bS5iZXJsaW4udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBq7AcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIQvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2Jlcmxpbi92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ3OjxhdXRvc3VtbWFyeT6UaB9LAWggaukHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcagwEAABoHU5oH05oIGrmBwAAdWJqDQQAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwuQ29weSBhIHBvcnRpb24gb2YgYW4gYWNjb3VudCdzIGNvZGUgdG8gbWVtb3J5LpRoB12UaD+MMENvcHkgYSBwb3J0aW9uIG9mIGFuIGFjY291bnTigJlzIGNvZGUgdG8gbWVtb3J5LpSFlIGUfZQoaAVoBmggah0IAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGoaCAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoMBAAAaB1OaB9OaCBq5gcA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ZWgVXZRoF12UaBldlHVoHGoYBAAAaB1OaB9OaCBq5ggAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw3ZXRoZXJldW0uYmVybGluLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2RlaGFzaJSMCHJlZnRpdGxllIw3ZXRoZXJldW0uYmVybGluLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2RlaGFzaJR1aBxobWgdTmgfTmggauIIAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyEL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0Nzo8YXV0b3N1bW1hcnk+lGgfSwFoIGrfCAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGoMBAAAaB1OaB9OaCBq3AgAAHViag0EAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMNVJldHVybnMgdGhlIGtlY2NhazI1NiBoYXNoIG9mIGEgY29udHJhY3TigJlzIGJ5dGVjb2RllGgHXZRoP4w1UmV0dXJucyB0aGUga2VjY2FrMjU2IGhhc2ggb2YgYSBjb250cmFjdOKAmXMgYnl0ZWNvZGWUhZSBlH2UKGgFaAZoIGoTCQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2MhC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYmVybGluL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDc6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqEAkAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqDAQAAGgdTmgfTmggatwIAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcagcE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dGVudCBhY2NvdW50cyBkZWZhdWx0IHRvIEVNUFRZX0FDQ09VTlQsIHdoaWNoIGhhcyBiYWxhbmNlIDAuCiAgICBiYWxhbmNlID0gZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgYWRkcmVzcykuYmFsYW5jZQoKICAgIHB1c2goZXZtLnN0YWNrLCBiYWxhbmNlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WPQBAABkZWYgYmFsYW5jZShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIGFkZHJlc3MgPSB0b19hZGRyZXNzKHBvcChldm0uc3RhY2spKQoKICAgICMgR0FTCiAgICBpZiBhZGRyZXNzIGluIGV2bS5hY2Nlc3NlZF9hZGRyZXNzZXM6CiAgICAgICAgY2hhcmdlX2dhcyhldm0sIEdBU19XQVJNX0FDQ0VTUykKICAgIGVsc2U6CiAgICAgICAgZXZtLmFjY2Vzc2VkX2FkZHJlc3Nlcy5hZGQoYWRkcmVzcykKICAgICAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX0NPTERfQUNDT1VOVF9BQ0NFU1MpCgogICAgIyBPUEVSQVRJT04KICAgICMgTm9uLWV4aXN0ZW50IGFjY291bnRzIGRlZmF1bHQgdG8gRU1QVFlfQUNDT1VOVCwgd2hpY2ggaGFzIGJhbGFuY2UgMC4KICAgIGJhbGFuY2UgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKS5iYWxhbmNlCgogICAgcHVzaChldm0uc3RhY2ssIGJhbGFuY2UpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpSFlIGUfZQoaAVoBmggauQLAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjGQvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50LnB5lIwJeG1sOnNwYWNllGqjAwAAjAVmb3JjZZSJjAhs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HU5oH05oIGoJEQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGqWCgAAaB1OaB9OaCBq6hAAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqgwoAAGgdaB5oH05oIGqmEAAAdWJlaA59lChoEF2UaBNdlChq4xAAAIwIZnVuY3Rpb26UZWgVXZRoF12UaBldlIwGZG9tYWlulGrjEAAAjAdvYmp0eXBllGpaEQAAjAhkZXNjdHlwZZRqWhEAAIwHbm9pbmRleJSJdWgcaikKAABoHU5oH05oIGqKEAAAdWJq+goAACmBlH2UKGgFWIICAABkZWYgY2FsbGRhdGFjb3B5KGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgbWVtb3J5X3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIGRhdGFfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX1ZFUllfTE9XICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIHZhbHVlID0gYnVmZmVyX3JlYWQoZXZtLm1lc3NhZ2UuZGF0YSwgZGF0YV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WIICAABkZWYgY2FsbGRhdGFjb3B5KGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgbWVtb3J5X3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIGRhdGFfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX1ZFUllfTE9XICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIHZhbHVlID0gYnVmZmVyX3JlYWQoZXZtLm1lc3NhZ2UuZGF0YSwgZGF0YV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUhZSBlH2UKGgFaAZoIGpiEQAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxkL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vYmVybGluL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC5weZSMCXhtbDpzcGFjZZRqowMAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lGoRCwAASwFzjAdsaW5l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X2luZGV4LCBzaXplKV0KICAgICkKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfVkVSWV9MT1cgKyBjb3B5X2dhc19jb3N0ICsgZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBidWZmZXJfcmVhZChldm0uY29kZSwgY29kZV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WHYCAABkZWYgY29kZWNvcHkoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBtZW1vcnlfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgY29kZV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBzaXplID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgd29yZHMgPSBjZWlsMzIoVWludChzaXplKSkgLy8gMzIKICAgIGNvcHlfZ2FzX2Nvc3QgPSBHQVNfQ09QWSAqIHdvcmRzCiAgICBleHRlbmRfbWVtb3J5ID0gY2FsY3VsYXRlX2dhc19leHRlbmRfbWVtb3J5KAogICAgICAgIGV2bS5tZW1vcnksIFsobWVtb3J5X3N0YXJ0X2luZGV4LCBzaXplKV0KICAgICkKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfVkVSWV9MT1cgKyBjb3B5X2dhc19jb3N0ICsgZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBidWZmZXJfcmVhZChldm0uY29kZSwgY29kZV9zdGFydF9pbmRleCwgc2l6ZSkKICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3Rh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TgogICAgIyBOb24tZXhpc3RlbnQgYWNjb3VudHMgZGVmYXVsdCB0byBFTVBUWV9BQ0NPVU5ULCB3aGljaCBoYXMgZW1wdHkgY29kZS4KICAgIGNvZGVzaXplID0gVTI1NihsZW4oZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgYWRkcmVzcykuY29kZSkpCgogICAgcHVzaChldm0uc3RhY2ssIGNvZGVzaXplKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WAMCAABkZWYgZXh0Y29kZXNpemUoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBhZGRyZXNzID0gdG9fYWRkcmVzcyhwb3AoZXZtLnN0YWNrKSkKCiAgICAjIEdBUwogICAgaWYgYWRkcmVzcyBpbiBldm0uYWNjZXNzZWRfYWRkcmVzc2VzOgogICAgICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfV0FSTV9BQ0NFU1MpCiAgICBlbHNlOgogICAgICAgIGV2bS5hY2Nlc3NlZF9hZGRyZXNzZXMuYWRkKGFkZHJlc3MpCiAgICAgICAgY2hhcmdlX2dhcyhldm0sIEdBU19DT0xEX0FDQ09VTlRfQUNDRVNTKQoKICAgICMgT1BFUkFUSU9OCiAgICAjIE5vbi1leGlzdGVudCBhY2NvdW50cyBkZWZhdWx0IHRvIEVNUFRZX0FDQ09VTlQsIHdoaWNoIGhhcyBlbXB0eSBjb2RlLgogICAgY29kZXNpemUgPSBVMjU2KGxlbihnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKS5jb2RlKSkKCiAgICBwdXNoKGV2bS5zdGFjaywgY29kZXNpemUpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpSFlIGUfZQoaAVoBmggahAVAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjGQvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vu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c3Nlcy5hZGQoYWRkcmVzcykKICAgICAgICBjaGFyZ2VfZ2FzKAogICAgICAgICAgICBldm0sIEdBU19DT0xEX0FDQ09VTlRfQUNDRVNTICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdAogICAgICAgICkKCiAgICAjIE9QRVJBVElPTgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIGNvZGUgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKS5jb2RlCiAgICB2YWx1ZSA9IGJ1ZmZlcl9yZWFkKGNvZGUsIGNvZGVfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1imAwAAZGVmIGV4dGNvZGVjb3B5KGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgYWRkcmVzcyA9IHRvX2FkZHJlc3MocG9wKGV2bS5zdGFjaykpCiAgICBtZW1vcnlfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgY29kZV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBzaXplID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgd29yZHMgPSBjZWlsMzIoVWludChzaXplKSkgLy8gMzIKICAgIGNvcHlfZ2FzX2Nvc3QgPSBHQVNfQ09QWSAqIHdvcmRzCiAgICBleHRlbmRfbWVtb3J5ID0gY2FsY3VsYXRlX2dhc19leHRlbmRfbWVtb3J5KAogICAgICAgIGV2bS5tZW1vcnksIFsobWVtb3J5X3N0YXJ0X2luZGV4LCBzaXplKV0KICAgICkKCiAgICBpZiBhZGRyZXNzIGluIGV2bS5hY2Nlc3NlZF9hZGRyZXNzZXM6CiAgICAgICAgY2hhcmdlX2dhcyhldm0sIEdBU19XQVJNX0FDQ0VTUyArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QpCiAgICBlbHNlOgogICAgICAgIGV2bS5hY2Nlc3NlZF9hZGRyZXNzZXMuYWRkKGFkZHJlc3MpCiAgICAgICAgY2hhcmdlX2dhcygKICAgICAgICAgICAgZXZtLCBHQVNfQ09MRF9BQ0NPVU5UX0FDQ0VTUyArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QKICAgICAgICApCgogICAgIyBPUEVSQVRJT04KICAgIGV2bS5tZW1vcnkgKz0gYiJceDAwIiAqIGV4dGVuZF9tZW1vcnkuZXhwYW5kX2J5CiAgICBjb2RlID0gZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgYWRkcmVzcykuY29kZQogICAgdmFsdWUgPSBidWZmZXJfcmVhZChjb2RlLCBjb2RlX3N0YXJ0X2luZGV4LCBzaXplKQogICAgbWVtb3J5X3dyaXRlKGV2bS5tZW1vcnksIG1lbW9yeV9zdGFydF9pbmRleCwgdmFsdWUpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpSFlIGUfZQoaAVoBmggavgVAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjGQvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50LnB5lIwJeG1sOnNwYWNllGqjAwAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UahELAABLAXOMB2xpbmVub3OUiXVoHGr5CgAAaB1oHmgfTSEBaCBqLhUAAHViZWgOfZQoaBBdlGqkAgAAYWgTXZRoFV2UjAtleHRjb2RlY29weZRhaBddlGgZXZR1aBxoM2gdaB5oH00UAWggavwJAABoIWgDdWJoNCmBlH2UKGgFaAZoB12UKGg5KYGUfZQoaAWMDnJldHVybmRhdGFzaXpllGgHXZRoP4wOcmV0dXJuZGF0YXNpemWUhZSBlH2UKGgFaAZoIGoZFgAAaCFoA2gdaERoH0sAdWJhaA59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aBldlHVoHGqDCgAAaB1oHmgfTmggahoXAAB1YmVoDn2UKGgQXZRoE12UKGpXFwAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UalcXAACMB29ianR5cGWUasAXAACMCGRlc2N0eXBllGrAFwAAjAdub2luZGV4lIl1aBxqKQoAAGgdTmgfTmggav4WAAB1Ymr6CgAAKYGUfZQoaAVYPQMAAGRlZiByZXR1cm5kYXRhY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIG1lbW9yeV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICByZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbiA9IHBvcChldm0uc3RhY2spCiAgICBzaXplID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgd29yZHMgPSBjZWlsMzIoVWludChzaXplKSkgLy8gMzIKICAgIGNvcHlfZ2FzX2Nvc3QgPSBHQVNfUkVUVVJOX0RBVEFfQ09QWSAqIHdvcmRzCiAgICBleHRlbmRfbWVtb3J5ID0gY2FsY3VsYXRlX2dhc19leHRlbmRfbWVtb3J5KAogICAgICAgIGV2bS5tZW1vcnksIFsobWVtb3J5X3N0YXJ0X2luZGV4LCBzaXplKV0KICAgICkKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfVkVSWV9MT1cgKyBjb3B5X2dhc19jb3N0ICsgZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBlbnN1cmUoCiAgICAgICAgVWludChyZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbikgKyBVaW50KHNpemUpIDw9IGxlbihldm0ucmV0dXJuX2RhdGEpLAogICAgICAgIE91dE9mQm91bmRzUmVhZCwKICAgICkKCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBldm0ucmV0dXJuX2RhdGFbCiAgICAgICAgcmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24gOiByZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbiArIHNpemUKICAgIF0KICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WD0DAABkZWYgcmV0dXJuZGF0YWNvcHkoZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBtZW1vcnlfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgcmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24gPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX1JFVFVSTl9EQVRBX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX1ZFUllfTE9XICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZW5zdXJlKAogICAgICAgIFVpbnQocmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24pICsgVWludChzaXplKSA8PSBsZW4oZXZtLnJldHVybl9kYXRhKSwKICAgICAgICBPdXRPZkJvdW5kc1JlYWQsCiAgICApCgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIHZhbHVlID0gZXZtLnJldHVybl9kYXRhWwogICAgICAgIHJldHVybl9kYXRhX3N0YXJ0X3Bvc2l0aW9uIDogcmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24gKyBzaXplCiAgICBdCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkK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ZWYgZXh0Y29kZWhhc2goZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBhZGRyZXNzID0gdG9fYWRkcmVzcyhwb3AoZXZtLnN0YWNrKSkKCiAgICAjIEdBUwogICAgaWYgYWRkcmVzcyBpbiBldm0uYWNjZXNzZWRfYWRkcmVzc2VzOgogICAgICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfV0FSTV9BQ0NFU1MpCiAgICBlbHNlOgogICAgICAgIGV2bS5hY2Nlc3NlZF9hZGRyZXNzZXMuYWRkKGFkZHJlc3MpCiAgICAgICAgY2hhcmdlX2dhcyhldm0sIEdBU19DT0xEX0FDQ09VTlRfQUNDRVNTKQoKICAgICMgT1BFUkFUSU9OCiAgICBhY2NvdW50ID0gZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgYWRkcmVzcykKCiAgICBpZiBhY2NvdW50ID09IEVNUFRZX0FDQ09VTlQ6CiAgICAgICAgY29kZWhhc2ggPSBVMjU2KDApCiAgICBlbHNlOgogICAgICAgIGNvZGVoYXNoID0gVTI1Ni5mcm9tX2JlX2J5dGVzKGtlY2NhazI1NihhY2NvdW50LmNvZGUpKQoKICAgIHB1c2goZXZtLnN0YWNrLCBjb2RlaGFzaCkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1gsAgAAZGVmIGV4dGNvZGVoYXNoKGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgYWRkcmVzcyA9IHRvX2FkZHJlc3MocG9wKGV2bS5zdGFjaykpCgogICAgIyBHQVMKICAgIGlmIGFkZHJlc3MgaW4gZXZtLmFjY2Vzc2VkX2FkZHJlc3NlczoKICAgICAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX1dBUk1fQUNDRVNTKQogICAgZWxzZToKICAgICAgICBldm0uYWNjZXNzZWRfYWRkcmVzc2VzLmFkZChhZGRyZXNzKQogICAgICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfQ09MRF9BQ0NPVU5UX0FDQ0VTUykKCiAgICAjIE9QRVJBVElPTgogICAgYWNjb3VudCA9IGdldF9hY2NvdW50KGV2bS5l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ZW50IGFjY291bnRzIGRlZmF1bHQgdG8gRU1QVFlfQUNDT1VOVCwgd2hpY2ggaGFzIGJhbGFuY2UgMC4KICAgIGJhbGFuY2UgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBldm0ubWVzc2FnZS5jdXJyZW50X3RhcmdldCkuYmFsYW5jZQoKICAgIHB1c2goZXZtLnN0YWNrLCBiYWxhbmNlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WFUBAABkZWYgc2VsZl9iYWxhbmNlKGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgcGFzcwoKICAgICMgR0FTCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX0ZBU1RfU1RFUCkKCiAgICAjIE9QRVJBVElPTgogICAgIyBOb24tZXhpc3RlbnQgYWNjb3VudHMgZGVmYXVsdCB0byBFTVBUWV9BQ0NPVU5ULCB3aGljaCBoYXMgYmFsYW5jZSAwLgogICAgYmFsYW5jZSA9IGdldF9hY2NvdW50KGV2bS5lbnYuc3RhdGUsIGV2bS5tZXNzYWdlLmN1cnJlbnRfdGFyZ2V0KS5iYWxhbmNlCgogICAgcHVzaChldm0uc3RhY2ssIGJhbGFuY2UpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpSFlIGUfZQoaAVoBmggalAZAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAZzb3VyY2WUjGQvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL3NyYy9ldGhlcmV1bS9iZXJsaW4vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50LnB5lIwJeG1sOnNwYWNllGqjAwAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UahELAABLAXOMB2xpbmVub3OUiXVoHGr5CgAAaB1oHmgfTWgBaCBqhhgAAHViZWgOfZQoaBBdlGosAwAAYWgTXZRoFV2UjAxzZWxmX2JhbGFuY2WUYWgXXZRoGV2UdWgcaDNoHWgeaB9N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bi1zcGVjcy9zcmMvZXRoZXJldW0vbG9uZG9uL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC5weZSMCXhtbDpzcGFjZZRqowMAAIwFZm9yY2WUiYwIbGFuZ3VhZ2WUjAZweXRob26UjA5oaWdobGlnaHRfYXJnc5R9lIwLbGluZW5vc3RhcnSUSwFzjAdsaW5lbm9zlIl1aBxq+QoAAGgdan8ZAABoH017AWggam4ZAAB1YmVoDn2UKGgQXZRqTgMAAGFoE12UjAxjaGFuZ2UtYWRkZWSUYWgVXZSMCGJhc2VfZmVllGFoF12UaBldlHVoHGgzaB1qfxkAAGgfTW4BaCBq/AkAAGghaAN1YmVoDn2UKGgQXZRo7WFoE12UaBVdlIwObW9kdWxlIGRldGFpbHOUYWgXXZRoGV2UdWgcaDNoHWgeaB9LMWggaDVoIWgDdWJlaA59lChoEF2UjDdldGhlcmV1bS12aXJ0dWFsLW1hY2hpbmUtZXZtLWVudmlyb25tZW50YWwtaW5zdHJ1Y3Rpb25zlGFoE12UaBVdlIw5ZXRoZXJldW0gdmlydHVhbCBtYWNoaW5lIChldm0pIGVudmlyb25tZW50YWwgaW5zdHJ1Y3Rpb25zlGFoF12UaBldlHVoHGgzaB1oHmgfSwRoIGgDaCFoA3ViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZRoRHVoHGgBjA5jdXJyZW50X3NvdXJjZZRoRIwMY3VycmVudF9saW5llEsAjAhzZXR0aW5nc5SMEWRvY3V0aWxzLmZyb250ZW5klIwGVmFsdWVzlJOUKYGUfZQojAxyZXBvcnRfbGV2ZWyUSwKMCmhhbHRfbGV2ZWyUSwSMEWV4aXRfc3RhdHVzX2xldmVslEsFjAVkZWJ1Z5ROjA53YXJuaW5nX3N0cmVhbZROjAl0cmFjZWJhY2uUTowPb3V0cHV0X2VuY29kaW5nlIwFdXRmLTiUjB1vdXRwdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEXhtbGNoYXJyZWZyZXBsYWNllIwOZXJyb3JfZW5jb2RpbmeUjAV1dGYtOJSMHGVycm9yX2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjBBiYWNrc2xhc2hyZXBsYWNllIwTcmVjb3JkX2RlcGVuZGVuY2llc5SMDmRvY3V0aWxzLnV0aWxzlIwORGVwZW5kZW5jeUxpc3SUk5QpgZR9lCiMBGxpc3SUXZSMBGZpbGWUTnVijAZjb25maWeUTowNZHVtcF9zZXR0aW5nc5ROjA5kdW1wX2ludGVybmFsc5ROjA9kdW1wX3RyYW5zZm9ybXOUTowPZHVtcF9wc2V1ZG9feG1slE6MEGV4cG9zZV9pbnRlcm5hbHOUTowOc3RyaWN0X3Zpc2l0b3KUTowPX2Rpc2FibGVfY29uZmlnlE6MB19zb3VyY2WUTowMX2Rlc3RpbmF0aW9ulIxCZG9jL2RpZmZzL2Jlcmxpbl9sb25kb24vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnBpY2tsZTY0lIwNX2NvbmZpZ19maWxlc5RdlIwRbGluZV9sZW5ndGhfbGltaXSUTRAnjAl0YWJfd2lkdGiUSwiMEHN5bnRheF9oaWdobGlnaHSUjARsb25nlIwMc21hcnRfcXVvdGVzlImME3NtYXJ0cXVvdGVzX2xvY2FsZXOUTowdY2hhcmFjdGVyX2xldmVsX2lubGluZV9tYXJrdXCUiYwGd3JpdGVylIwDeG1slIwZY29tcGFyZV9zZWN0aW9uc19ieV9uYW1lc5RLAYwMZHVtcF9yc3RkaWZmlE6MBV9ib3RolH2UKGg4TowJZ2VuZXJhdG9ylE6MCWRhdGVzdGFtcJROjAtzb3VyY2VfbGlua5ROjApzb3VyY2VfdXJslE6MDXRvY19iYWNrbGlua3OUagwEAACMEmZvb3Rub3RlX2JhY2tsaW5rc5RLAYwNc2VjdG51bV94Zm9ybZRLAYwOZG9jdGl0bGVfeGZvcm2USwGMDWRvY2luZm9feGZvcm2USwGMEnNlY3RzdWJ0aXRsZV94Zm9ybZRLAIwOc3RyaXBfY29tbWVudHOUTowOaW5wdXRfZW5jb2RpbmeUTowcaW5wdXRfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMBnN0cmljdJSMDWxhbmd1YWdlX2NvZGWUjAJlbpSMDnBlcF9yZWZlcmVuY2VzlE6MDHBlcF9iYXNlX3VybJSMH2h0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy+UjBVwZXBfZmlsZV91cmxfdGVtcGxhdGWUjAhwZXAtJTA0ZJSMDnJmY19yZWZlcmVuY2VzlE6MDHJmY19iYXNlX3VybJSMG2h0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL5SMHXRyaW1fZm9vdG5vdGVfcmVmZXJlbmNlX3NwYWNllE6MFmZpbGVfaW5zZXJ0aW9uX2VuYWJsZWSUSwGMC3Jhd19lbmFibGVklEsBjA5hdXRvX2lkX3ByZWZpeJSMAmlklIwJaWRfcHJlZml4lGgGjBtzdHJpcF9lbGVtZW50c193aXRoX2NsYXNzZXOUTowNc3RyaXBfY2xhc3Nlc5ROdYwEYm90aJR9lIwKX29wdGlvbnNUb5SMBV9ib3RolIwLX29sZF9zb3VyY2WUjE8vaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzLy50b3gvZG9jcy9zdGFnZTBfb3V0L2F1dG9hcGkvlIwLX25ld19zb3VyY2WUjAlkb2MvZGlmZnOUarsaAABqvBoAAIwWaWdub3JlX2luX3NlY3Rpb25fbmFtZZRdlCiMBmJlcmxpbpSMBmxvbmRvbpRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==