A/MNCi9c/FVjAAAAAAAAAAAFAAAAQAAAAHPsAAAAZAAAWgAAZAEAWgEAZAIAZAMAbAIAWgIAZAIAZAMAbAMAWgMAeQoAZQQAWgUAV24nAARlBgBrCgByVwABAQFkBABlBwBmAQBkBQCEAACDAABZWgUAbgEAWGQGAGQHAGQIAGQJAGcEAFoIAGQKAFoJAGQGAGYAAGQLAIQAAIMAAFlaCgBkDABkDQCEAQBaCwBkDABkDgCEAQBaDABlAwBqDQBkDwBlAwBqDgCDAgBaDwBlAwBqDQBkEABlAwBqDgCDAgBaEABkEQCEAABaEQBlEgBkEgBrAgBy6ABlEQBkEwCDAQBHSG4AAGQDAFMoFAAAAHMbAAAAVGV4dCB3cmFwcGluZyBhbmQgZmlsbGluZy4KcwQAAAAkSWQkaf////9OdAgAAABfdW5pY29kZWMAAAAAAAAAAAEAAABCAAAAcwgAAABlAABaAQBSUygAAAAAKAIAAAB0CAAAAF9fbmFtZV9fdAoAAABfX21vZHVsZV9fKAAAAAAoAAAAACgAAAAAc08AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L3RleHR3cmFwLnB5UgAAAAARAAAAcwIAAAAGAXQLAAAAVGV4dFdyYXBwZXJ0BAAAAHdyYXB0BAAAAGZpbGx0BgAAAGRlZGVudHMGAAAACQoLDA0gYwAAAAAAAAAACgAAAEIAAABz9wAAAGUAAFoBAGQAAFoCAGUDAGoEAGUFAGQBAGUGAGUFAIMBABSDAgBaBwBpAABaCABlCQBkAgCDAQBaCgB4IQBlCwBlCQBlBQCDAgBEXRAAWgwAZQoAZQgAZQwAPHFKAFdlDQBqDgBkAwCDAQBaDwBlDQBqDgBkBACDAQBaEABlDQBqDgBkBQBlAwBqEQAWgwEAWhIAZAYAZAcAZAcAZRMAZRMAZRQAZRMAZRMAZRMAZAgAhAkAWhUAZAkAhAAAWhYAZAoAhAAAWhcAZAsAhAAAWhgAZAwAhAAAWhkAZA0AhAAAWhoAZA4AhAAAWhsAZA8AhAAAWhwAUlMoEAAAAHP3BwAACiAgICBPYmplY3QgZm9yIHdyYXBwaW5nL2ZpbGxpbmcgdGV4dC4gIFRoZSBwdWJsaWMgaW50ZXJmYWNlIGNvbnNpc3RzIG9mCiAgICB0aGUgd3JhcCgpIGFuZCBmaWxsKCkgbWV0aG9kczsgdGhlIG90aGVyIG1ldGhvZHMgYXJlIGp1c3QgdGhlcmUgZm9yCiAgICBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIGluIG9yZGVyIHRvIHR3ZWFrIHRoZSBkZWZhdWx0IGJlaGF2aW91ci4KICAgIElmIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkgcmVwbGFjZSB0aGUgbWFpbiB3cmFwcGluZyBhbGdvcml0aG0sCiAgICB5b3UnbGwgcHJvYmFibHkgaGF2ZSB0byBvdmVycmlkZSBfd3JhcF9jaHVua3MoKS4KCiAgICBTZXZlcmFsIGluc3RhbmNlIGF0dHJpYnV0ZXMgY29udHJvbCB2YXJpb3VzIGFzcGVjdHMgb2Ygd3JhcHBpbmc6CiAgICAgIHdpZHRoIChkZWZhdWx0OiA3MCkKICAgICAgICB0aGUgbWF4aW11bSB3aWR0aCBvZiB3cmFwcGVkIGxpbmVzICh1bmxlc3MgYnJlYWtfbG9uZ193b3JkcwogICAgICAgIGlzIGZhbHNlKQogICAgICBpbml0aWFsX2luZGVudCAoZGVmYXVsdDogIiIpCiAgICAgICAgc3RyaW5nIHRoYXQgd2lsbCBiZSBwcmVwZW5kZWQgdG8gdGhlIGZpcnN0IGxpbmUgb2Ygd3JhcHBlZAogICAgICAgIG91dHB1dC4gIENvdW50cyB0b3dhcmRzIHRoZSBsaW5lJ3Mgd2lkdGguCiAgICAgIHN1YnNlcXVlbnRfaW5kZW50IChkZWZhdWx0OiAiIikKICAgICAgICBzdHJpbmcgdGhhdCB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgbGluZXMgc2F2ZSB0aGUgZmlyc3QKICAgICAgICBvZiB3cmFwcGVkIG91dHB1dDsgYWxzbyBjb3VudHMgdG93YXJkcyBlYWNoIGxpbmUncyB3aWR0aC4KICAgICAgZXhwYW5kX3RhYnMgKGRlZmF1bHQ6IHRydWUpCiAgICAgICAgRXhwYW5kIHRhYnMgaW4gaW5wdXQgdGV4dCB0byBzcGFjZXMgYmVmb3JlIGZ1cnRoZXIgcHJvY2Vzc2luZy4KICAgICAgICBFYWNoIHRhYiB3aWxsIGJlY29tZSAxIC4uIDggc3BhY2VzLCBkZXBlbmRpbmcgb24gaXRzIHBvc2l0aW9uIGluCiAgICAgICAgaXRzIGxpbmUuICBJZiBmYWxzZSwgZWFjaCB0YWIgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZSBjaGFyYWN0ZXIuCiAgICAgIHJlcGxhY2Vfd2hpdGVzcGFjZSAoZGVmYXVsdDogdHJ1ZSkKICAgICAgICBSZXBsYWNlIGFsbCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4gdGhlIGlucHV0IHRleHQgYnkgc3BhY2VzCiAgICAgICAgYWZ0ZXIgdGFiIGV4cGFuc2lvbi4gIE5vdGUgdGhhdCBpZiBleHBhbmRfdGFicyBpcyBmYWxzZSBhbmQKICAgICAgICByZXBsYWNlX3doaXRlc3BhY2UgaXMgdHJ1ZSwgZXZlcnkgdGFiIHdpbGwgYmUgY29udmVydGVkIHRvIGEKICAgICAgICBzaW5nbGUgc3BhY2UhCiAgICAgIGZpeF9zZW50ZW5jZV9lbmRpbmdzIChkZWZhdWx0OiBmYWxzZSkKICAgICAgICBFbnN1cmUgdGhhdCBzZW50ZW5jZS1lbmRpbmcgcHVuY3R1YXRpb24gaXMgYWx3YXlzIGZvbGxvd2VkCiAgICAgICAgYnkgdHdvIHNwYWNlcy4gIE9mZiBieSBkZWZhdWx0IGJlY2F1c2UgdGhlIGFsZ29yaXRobSBpcwogICAgICAgICh1bmF2b2lkYWJseSkgaW1wZXJmZWN0LgogICAgICBicmVha19sb25nX3dvcmRzIChkZWZhdWx0OiB0cnVlKQogICAgICAgIEJyZWFrIHdvcmRzIGxvbmdlciB0aGFuICd3aWR0aCcuICBJZiBmYWxzZSwgdGhvc2Ugd29yZHMgd2lsbCBub3QKICAgICAgICBiZSBicm9rZW4sIGFuZCBzb21lIGxpbmVzIG1pZ2h0IGJlIGxvbmdlciB0aGFuICd3aWR0aCcuCiAgICAgIGJyZWFrX29uX2h5cGhlbnMgKGRlZmF1bHQ6IHRydWUpCiAgICAgICAgQWxsb3cgYnJlYWtpbmcgaHlwaGVuYXRlZCB3b3Jkcy4gSWYgdHJ1ZSwgd3JhcHBpbmcgd2lsbCBvY2N1cgog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IC0+IFtzdHJpbmddCgogICAgICAgIFdyYXAgYSBzZXF1ZW5jZSBvZiB0ZXh0IGNodW5rcyBhbmQgcmV0dXJuIGEgbGlzdCBvZiBsaW5lcyBvZgogICAgICAgIGxlbmd0aCAnc2VsZi53aWR0aCcgb3IgbGVzcy4gIChJZiAnYnJlYWtfbG9uZ193b3JkcycgaXMgZmFsc2UsCiAgICAgICAgc29tZSBsaW5lcyBtYXkgYmUgbG9uZ2VyIHRoYW4gdGhpcy4pICBDaHVua3MgY29ycmVzcG9uZCByb3VnaGx5CiAgICAgICAgdG8gd29yZHMgYW5kIHRoZSB3aGl0ZXNwYWNlIGJldHdlZW4gdGhlbTogZWFjaCBjaHVuayBpcwogICAgICAgIGluZGl2aXNpYmxlIChtb2R1bG8gJ2JyZWFrX2xvbmdfd29yZHMnKSwgYnV0IGEgbGluZSBicmVhayBjYW4KICAgICAgICBjb21lIGJldHdlZW4gYW55IHR3byBjaHVua3MuICBDaHVua3Mgc2hvdWxkIG5vdCBoYXZlIGludGVybmFsCiAgICAgICAgd2hpdGVzcGFjZTsgaWUuIGEgY2h1bmsgaXMgZWl0aGVyIGFsbCB3aGl0ZXNwYWNlIG9yIGEgIndvcmQiLgogICAgICAgIFdoaXRlc3BhY2UgY2h1bmtzIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZgogICAgICAgIGxpbmVzLCBidXQgYXBhcnQgZnJvbSB0aGF0IHdoaXRlc3BhY2UgaXMgcHJlc2VydmVkLgogICAgICAgIGkAAAAAcx4AAABpbnZhbGlkIHdpZHRoICVyIChtdXN0IGJlID4gMClp/////1IIAAAAKAwAAABSCQAAAHQKAAAAVmFsdWVFcnJvcnQHAAAAcmV2ZXJzZVILAAAAUgoAAABSLAAAAFIQAAAAdAUAAABzdHJpcFIwAAAAUjEAAABSNgAAAHQEAAAAam9pbigIAAAAUhoAAABSKAAAAHQFAAAAbGluZXNSMwAAAFI0AAAAdAYAAABpbmRlbnRSCQAAAHQBAAAAbCgAAAAAKAAAAABzTwAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgt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bmVzLiAgQnkKICAgIGRlZmF1bHQsIHRhYnMgaW4gJ3RleHQnIGFyZSBleHBhbmRlZCB3aXRoIHN0cmluZy5leHBhbmR0YWJzKCksIGFuZAogICAgYWxsIG90aGVyIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAoaW5jbHVkaW5nIG5ld2xpbmUpIGFyZSBjb252ZXJ0ZWQgdG8KICAgIHNwYWNlLiAgU2VlIFRleHRXcmFwcGVyIGNsYXNzIGZvciBhdmFpbGFibGUga2V5d29yZCBhcmdzIHRvIGN1c3RvbWl6ZQogICAgd3JhcHBpbmcgYmVoYXZpb3VyLgogICAgUgkAAAAoAgAAAFIDAAAAUgQAAAAoBAAAAFIiAAAAUgkAAAB0BgAAAGt3YXJnc3QBAAAAdygAAAAAKAAAAABzTwAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvdGV4dHdyYXAucHlSBAAAAFcBAABzBAAAAAAKEgFjAgAAAAQAAAAEAAAASwAAAHMfAAAAdAAAZAEAfAEAfAIAjQABfQMAfAMAagEAfAAAgwEAUygCAAAAc5YBAABGaWxsIGEgc2luZ2xlIHBhcmFncmFwaCBvZiB0ZXh0LCByZXR1cm5pbmcgYSBuZXcgc3RyaW5nLgoKICAgIFJlZm9ybWF0IHRoZSBzaW5nbGUgcGFyYWdyYXBoIGluICd0ZXh0JyB0byBmaXQgaW4gbGluZXMgb2Ygbm8gbW9yZQogICAgdGhhbiAnd2lkdGgnIGNvbHVtbnMsIGFuZCByZXR1cm4gYSBuZXcgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGVudGlyZQogICAgd3JhcHBlZCBwYXJhZ3JhcGguICBBcyB3aXRoIHdyYXAoKSwgdGFicyBhcmUgZXhwYW5kZWQgYW5kIG90aGVyCiAgICB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgY29udmVydGVkIHRvIHNwYWNlLiAgU2VlIFRleHRXcmFwcGVyIGNsYXNzIGZvcgogICAgYXZhaWxhYmxlIGtleXdvcmQgYXJncyB0byBjdXN0b21pemUgd3JhcHBpbmcgYmVoYXZpb3VyLgogICAgUgkAAAAoAgAAAFIDAAAAUgUAAAAoBAAAAFIiAAAAUgkAAABSSgAAAFJLAAAAKAAAAAAoAAAAAHNPAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy90ZXh0d3JhcC5weVIFAAAAZAEAAHMEAAAAAAkSAXMHAAAAXlsgCV0rJHMSAAAAKF5bIAldKikoPzpbXiAJCl0pYwEAAAAFAAAABQAAAEMAAABzzQAAAGQFAH0BAHQBAGoCAGQBAHwAAIMCAH0AAHQDAGoEAHwAAIMBAH0CAHhUAHwCAERdTAB9AwB8AQBkBQBrCABySQB8AwB9AQBxLgB8AwBqBQB8AQCDAQByWwBxLgB8AQBqBQB8AwCDAQBycwB8AwB9AQBxLgBkAQB9AQBQcS4AV2QCAHKnAHwBAHKnAHgaAHwAAGoGAGQDAIMBAERdBgB9BABxmgBXbgAAfAEAcskAdAcAagIAZAQAfAEAF2QBAHwAAIMDAH0AAG4AAHwAAFMoBgAAAHM5AgAAUmVtb3ZlIGFueSBjb21tb24gbGVhZGluZyB3aGl0ZXNwYWNlIGZyb20gZXZlcnkgbGluZSBpbiBgdGV4dGAuCgogICAgVGhpcyBjYW4gYmUgdXNlZCB0byBtYWtlIHRyaXBsZS1xdW90ZWQgc3RyaW5ncyBsaW5lIHVwIHdpdGggdGhlIGxlZnQKICAgIGVkZ2Ugb2YgdGhlIGRpc3BsYXksIHdoaWxlIHN0aWxsIHByZXNlbnRpbmcgdGhlbSBpbiB0aGUgc291cmNlIGNvZGUKICAgIGluIGluZGVudGVkIGZvcm0uCgogICAgTm90ZSB0aGF0IHRhYnMgYW5kIHNwYWNlcyBhcmUgYm90aCB0cmVhdGVkIGFzIHdoaXRlc3BhY2UsIGJ1dCB0aGV5CiAgICBhcmUgbm90IGVxdWFsOiB0aGUgbGluZXMgIiAgaGVsbG8iIGFuZCAiCWhlbGxvIiBhcmUKICAgIGNvbnNpZGVyZWQgdG8gaGF2ZSBubyBjb21tb24gbGVhZGluZyB3aGl0ZXNwYWNlLiAgKFRoaXMgYmVoYXZpb3VyIGlzCiAgICBuZXcgaW4gUHl0aG9uIDIuNTsgb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBtb2R1bGUgaW5jb3JyZWN0bHkKICAgIGV4cGFuZGVkIHRhYnMgYmVmb3JlIHNlYXJjaGluZyBmb3IgY29tbW9uIGxlYWRpbmcgd2hpdGVzcGFjZS4pCiAgICBSCAAAAGkAAAAAcwEAAAAKcwUAAAAoP20pXk4oCAAAAFImAAAAdBMAAABfd2hpdGVzcGFjZV9vbmx5X3JldAMAAABzdWJ0FgAAAF9sZWFkaW5nX3doaXRlc3BhY2VfcmV0BwAAAGZpbmRhbGx0CgAAAHN0YXJ0c3dpdGhSJAAAAFISAAAAKAUAAABSIgAAAHQGAAAAbWFyZ2ludAcAAABpbmRlbnRzUjwAAAB0BAAAAGxpbmUoAAAAACgAAAAAc08AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L3RleHR3cmFwLnB5UgYAAAB2AQAAcyQAAAAADwYBEgEPAQ0BDAEJBA8BAwQPAQkFBgEFAwwBFgEHAwYBHAF0CAAAAF9fbWFpbl9fcyAAAABIZWxsbyB0aGVyZS4KICBUaGlzIGlzIGluZGVudGVkLigTAAAAUj8AAAB0DAAAAF9fcmV2aXNpb25fX1JAAAAAUhIAAAB0BwAAAHVuaWNvZGVSAAAAAHQJAAAATmFtZUVycm9ydAYAAABvYmplY3R0BwAAAF9fYWxsX19SQgAAAFIDAAAAUgQAAABSBQAAAFITAAAAdAkAAABNVUxUSUxJTkVSTAAAAFJOAAAAUgYAAABSAQAAACgAAAAAKAAAAAAoAAAAAHNPAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy90ZXh0d3JhcC5weXQIAAAAPG1vZHVsZT4CAAAAcyIAAAAGBgYCGAIDAQoBDQMaCxIKBgIT/wAwDA0MDxUBFQIJMAwD