U2lubiAoUXVhc2ltb2RvLCAgOC4gSnVsIDE5OTMsIDE2OjI4OjQxKToKSWNoIG1vZWNodGUgaGllciBOSUNIVCB1ZWJlciBkZW4gU2lubiBlaW5lciBsZWVyZW4gUnVicmlrIGRpc2t1dGllcmVuLAphYmVyIGljaCBkYWNodGUgbWlyIGVpbiBBcnRpa2VsIHd1ZXJkZSBpaHIgZ2FueiBndXQgc3RlaGVuLgoKUXVhc2ltb2RvCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCld1ZXN0ZSAuLi4gd2FzIGdlaHQgZGEgYWI/IChEdXJpYW4sICA4LiBKdWwgMTk5MywgMTc6MDc6MTApOgpIYWxsbyBTcGllbGVyLApWZXJtdXRsaWNoIHNwcmljaHQgUXVhc2ltb2RvIGZ1ZXIgbWVocmVyZSBTcGllbGVyLCBkZXNoYWxiIG1vZWNodGUgaWNoIGt1cnoKZXR3YXMgenVyIFd1ZXN0ZSBzYWdlbi4KRGllIFd1ZXN0ZSBpc3QgenVyIFplaXQgKGRhcyBpc3Qgc2VociB2b3JzaWNodGlnIGF1c2dlZHJ1ZWNrdCkgemllbWxpY2gga2xlaW4uCkFiZXIgYW4gaWhyIHdpcmQgZ2ViYXV0LCB1bmQgc2llIHdpcmQgc2VociBiYWxkIHVtIGVpbmUgU3RhZHQgdW5kIFB5cmFtaWRlbgp1bmQgZWluZSBrbGVpbmUgT2FzZSBlcndlaXRlciB3ZXJkZW4uIEZlcm5lciB3aXJkIGFuIGVpbmVtIFBhbGFzdCB1bmQgZWluZXIKendlaXRlbiBTdGFkdCBnZWFyYmVpdGV0LgpEb2NoIGRhIHdpcmQgbmljaHRzIGhhbGJmZXJ0aWdlcyBlcm9lZmZuZW4gd29sbGVuIHVuZCBFdWNoIGluIGVpbiBSZWljaApkZXIgV2FuemVuIG51ciB1bmdlcm4gbGF1ZmVuIGxhc3NlbiB3b2xsZW4gdW5kIHVuc2VyZSBaZWl0IGJlc2NocmFlbmt0IGlzdCwKZGF1ZXJ0IGVzIGhhbHQgbm9jaCBlaW5lIFdlaWxlLgpVbmQgZGEgZGllIFd1ZXN0ZSBub2NoIHNlaHIga2xlaW4gaXN0LCBpc3QgZGllc2UgUnVicmlrIGxlZXIuClZpZWxsZWljaHQgc29sbHRldCBJaHIgYXVjaCBnYXIgbmljaHQgaG9mZmVuLCBkYXNzIGRpZSBXdWVzdGUgZ3JvZXNzZXIgd2lyZC4KU2llIGlzdCB1bmJlcmVjaGVuYmFyIHVuZCBvZnRtYWxzIHRvZWRsaWNoIQoKLSBQcmlueiBEdXJpYW4gZWwgU2hhbWlyCiAgICAgICAgIFB5cmFtaWRlbmJhdWVyIHVuZCBQaGFyYW8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIFd1ZXN0ZSBsZWJ0ISAoQ2F0d2VhemxlLCAxMS4gTm92IDE5OTMsIDE0OjU1OjE3KToKRW5kbGljaCBpc3QgZXMgc293ZWl0LiBBdWNoIGluIGRlciB0cm9zdGxvc2VuLCBlbmRsb3NlbiB1bmQgbGFuZ3dlaWxpZ2VuCld1ZXN0ZSBnaWJ0IGVzIGVuZGxpY2ggd2FzIHp1IHR1bi4gRGllIFd1ZXN0ZSBsZWJ0LiBIZXV0ZSB3dXJkZSBlaW4gbmV1ZXMKR2ViaWV0IGFuZ2VzY2hsb3NzZW4sIGluIGRlciBXdWVzdGUgbmFlbWxpY2guIE5hdHVlcmxpY2ggZ2lidHMgZGEgYXVjaCAKZWluZSBRdWVzdC4gQWxzbywgYXVmYXVmIFNwaWVsZXIgdW5kIFNwaWVsZXJpbm5lbiwgamV0enQgYnJhdWNodCBpaHIgZGllCld1ZXN0ZSBudXIgbm9jaCBlaW4gYmlzc2NoZW4genUgQkVsZWJlbi4KCiAgICAgICBDYXR3ZWF6bGUgICAgICAgICAgICAgICAgX19vbzBfXygoKiAgKikpX18wb29fXwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHYW56IHNjaG9lbiBsZWVyIGhpZXIgKENhdHdlYXpsZSwgMjUuIEphbiAxOTk0LCAxMjowNDowNCk6ClRqYSwgZGllc2UgUnVicmlrIGlzdCB0YXRzYWVjaGxpY2ggc2Nob24gd2llZGVyIGxlZXIsIHVuZAp3aWVzbyBkYXMgYml0dGUgc2Nob2VuPyBLbGFyLCBlaW5kZXV0aWdlciBNYWdpZXJtYW5nZWwuCkFsc28gaGFiIGljaCBtaXIgZ2VkYWNodCwgZ2VoIGljaCBtYWwgZWluIGJpc3NjaGVuIHdlcmJlbi4KV2VyIGFsc28gaW1tZXIgc2Nob24gbWFsIGRhdm9uIGdldHJhZXVtdCBoYXQsIGVpbmUgT2FzZQpzZWluIGVpZ2VuIHp1IG5lbm5lbiwgb2RlciBhdWYgZWluZW0gS2FtZWwgZHVyY2ggZGllCnNlbmdlbmRlIEVpbnNhbWtlaXQgZGVyIFd1ZXN0ZSB6dSByZWl0ZW4sIHNvbGx0ZSBzaWNoCkdlZGFua2VuIGRhcnVlYmVyIG1hY2hlbiwgb2IgZXIgbmljaHQgdmllbGxlaWNodCBkYXp1CmJlcmVpdCB3YWVyZSwgaW4gZGVyIFd1ZXN0ZSB0YXRrcmFlZnRpZyBhbiBkZXIgRW50d2ljay0KbHVuZyBkZXJhcnRpZ2VyIFN6ZW5hcmllbiBtaXR6dXdpcmtlbi4gT2RlciB3ZXIgYXVjaCBudXIKbmUgdG9sbGUgSWRlZSBmdWVyIG5lIFF1ZXN0IGhhdCwgZGllIGluIGRlciBXdWVzdGUgc3BpZWx0LAppc3QgaGVyemxpY2hzdCB3aWxsa29tbWVuLiAKQXVzc2VyZGVtIGJyYXVjaGVuIHdpciBVbnRlcnN0dWV0enVuZywgZGEgRHVyaWFuIHVuZCBpY2gKdW5zIGVpbmlnZXMgZnVlciBkaWUgV3Vlc3RlIHVlYmVybGVndCBoYWJlbi4uLgpBbHNvIHNlaHQgenUsIGRhc3MgaWhyIGVuZGxpY2ggZGVuIE1hZ2llcmxldmVsIGVycmVpY2h0CnVuZCBrb21tdCBpbiBkaWUgV3Vlc3RlLi4uLgoKIEluIGRlciBIb2ZmbnVuZyBhdWYgcmVpY2hsaWNoZSBSZXNvbmFueiwKICAgICAgICAgCiAgICAgICAgICAgQ2F0d2VhemxlCgpQUy46IEVzIHdhZXJlIHNpY2hlcmxpY2ggYXVjaCBtb2VnbGljaCBhdXMgZWluaWdlbiAKICAgICB1ZWJlcmJldm9lbGtlcnRlbiBhbmRlcmVuIFJlZ2lvbmVuIHp1IHVucyBhYi0KICAgICB6dXdhbmRlcm4uIDotKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcndhcm51bmchIChEdXJpYW4sICA3LiBBcHIgMTk5NCwgMTI6MjM6NDcpOgpIYWxsbyBMZXV0ZSEKSWNoIG1vZWNodGUgRXVjaCBzY2hvbm1hbCB2b3J3YXJuZW4uIERpZSBXdWVzdGUgd2lyZCBzaWNoIGluIG5hZWNoc3RlcgpaZWl0IGltbWVyIHdpZWRlciB2ZXJhZW5kZXJuLiBEZXNoYWxiIHNvbGx0ZXQgSWhyIEV1Y2ggbmljaHQgc29uZGVybGljaAp3dW5kZXJuISBOb3JtYWxlcndlaXNlIHNvbGx0ZSBhYmVyIGFsbGVzLCB3YXMgSWhyIGRvcnQgc3VjaHQgYXVjaCBkb3J0Cnp1IGZpbmRlbiBzZWluLiBIaW4gdW5kIHdpZWRlciBrb21tdCBlcyBiZXN0aW1tdAp6dSBlaW5pZ2VuIFVuZ2VyZWltdGhlaXRlbiwgZWluZmFjaCBpZ25vcmllcmVuIHVuZCBkaWUgQmVmZWhsZQo8dHlwbz4sIDxpZGVlPiB1bmQgPGJ1Zz4gYmVudXR6ZW4gOi0pCgppbSBOYW1lbiBhbGxlciBXdWVzdGVubWFnaWVyCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi4gZHJpbmdlbmRlIE1pdHRlaWx1bmcgLi4uIChEdXJpYW4sIDE4LiBKdWwgMTk5NCwgMTk6MTk6MTIpOgpIYWxsbyBMZXV0ZSEKClVucyBpc3QgZ2VyYWRlIGV0d2FzIHp1IE9ocmVuIGdla29tbWVuLCB3YXMgd2lyIEV1Y2ggYmVzc2VyIHNjaG5lbGwKd2VpdGVyIGdlYmVuLiBXaWUgdW5zZXJlIEFsY2hlbWlzdGVuLCBHZW9sb2dlbiwgQXN0cm9ub21lbiB1bmQgV2FocnNhZ2VyCmVpbnN0aW1taWcgYmVoYXVwdGVuLCBzdGVodCB1bnMgaW4gZGVyIFd1ZXN0ZSBlaW4gc2Nod2VyZXMgRXJkYmViZW4KYmV2b3IuIFdpciBob2ZmZW4sIGRpZSBBdXN3aXJrdW5nZW4gZGllc2VzIEVyZGJlYmVucyBpbiBHcmVuemVuIGhhbHRlbgp6dSBrb2VubmVuLCBkb2NoIGVpbmUgZ3J1bmRsZWdlbmRlIFZlcmFlbmRlcnVuZyB3aXJkIHdvaGwgbmljaHQgenUKdmVybWVpZGVuIHNlaW4uCk1hbiBtdW5rZWx0LCBkYXNzIGltIExhdWZlIGRlciBOYWNoYmViZW4gc29nYXIgZGllIHNhZ2VudW13b2JlbmVuClB5cmFtaWRlbiBhdWZ0YXVjaGVuIHNvbGxlbi4gRG9jaCBpbndlaXQgZGEgZXR3YXMgd2FocmVzIGRyYW4gaXN0LCBsYWVzc3QKc2ljaCB6dSBkaWVzZW0gWmVpdHB1bmt0IG5pY2h0IHNhZ2VuLgpXaXIgYml0dGVuIGFsbGUgU3BpZWxlciBiZWltIER1cmNocXVlcmVuIGRlciBXdWVzdGUgenVrdWVuZnRpZyBldHdhcwp2b3JzaWNodGlnZXIgenUgc2VpbiwgdW5kIEF1ZmZhZWxsaWdrZWl0ZW4gbWl0IGRlbiBCZWZlaGxlbiBpZGVlL2J1Zwpzb2ZvcnQgenUgbWVsZGVuISEgV2lyIHdlcmRlbiB1bnMgZGFubiB1bSBtb2VnbGljaGUgRmVobGVyIGltClJhdW0tWmVpdGdlZnVlZ2Uga3VlbW1lcm4uCkdlbmF1IGtvbm50ZW4gZGllIEdlb2xvZ2VuIGRlbiBUZXJtaW4gZnVlciBkYXMgc2Nod2VyZSBFcmRiZWJlbiBub2NoCm5pY2h0IGZlc3RsZWdlbiwgbWFuIG11bmtlbHQgYWJlciwgZGFzcyBlcyBNaXR0d29jaCBlaW50cmV0ZW4gd2lyZC4KV2lyIHdlcmRlbiBFdWNoIGFiZXIgcmVjaHR6ZWl0aWcgd2FybmVuLCBzb2Rhc3MgSWhyIGRpZSBHZWZhaHJlbnpvbmUKZnJ1ZWh6ZWl0aWcgdmVybGFzc2VuIGtvZW5udC4KClVuZCBuaWVtYW5kIHdlaXNzLCB3YXMgdW5zIGRhcyBFcmRiZWJlbiBicmluZ2VuIHdpcmQgLi4uCgppbSBOYW1lbiBhbGxlciBXdWVzdGVubWFnaWVyCgotIER1cmlhbgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLiB3ZWl0ZXJlIE5ldWlna2VpdGVuIC4uLiAoRHVyaWFuLCAxOC4gSnVsIDE5OTQsIDE5OjIxOjM1KToKSGFsbG8hCgpTb2ViZW4gaGFiZSBpY2ggd2VpdGVyZSBJbmZvcm1hdGlvbmVuIHVlYmVyIGRhcyBFcmRiZWJlbiBlcmhhbHRlbi4KVW5zZXJlIEFsY2hlbWlzdGVuIGJlaGF1cHRlbiwgZGFzcyBkdXJjaCBkaWVzZXMgRXJkYmViZW4gZWluIExvY2ggaW4KZGVuIERpbWVuc2lvbmVuIGF1ZnJlaXNzZW4ga29lbm50ZSB1bmQgZGVuIFdlZyBpbiBlaW5lIGFuZGVyZSBEaW1lbnNpb24KZGFuYWNoIG1vZWdsaWNoIHNlaW4gc29sbC4KVmVybXV0ZXQgd2lyZCwgZGFzcyBkYXMgTG9jaCBzaWNoIGFuIGRlciBTdWVkc3BpdHplIGRlcyBVbmVudGRlY2t0ZW4KTGFuZGVzIGF1ZnR1biB3aXJkLiBEb2NoIG9iIHVuZCB3YW5uIHZlcm1hZyBuaWVtYW5kIHp1IHNhZ2VuLiBBdWNoIGRhcnVlYmVyCndlcmRlbiB3aXIgd2VpdGVyIGJlcmljaHRlbi4KCmltIE5hbWVuIGFsbGVyIFd1ZXN0ZW5tYWdpZXIgLi4uCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJkYmViZW4gKENhdHdlYXpsZSwgMTkuIEp1bCAxOTk0LCAxOToxMzo0Nyk6CkhhbGxvIGFsbGVzIHp1c2FtbWVuIQpUamEsIHNvIHdpZXMgYXVzc2llaHQsIHdpcmQgZGllc2VzIGFuZ2VrdWVuZGlndGUgRXJkYmViZW4KdW5hYndlbmRiYXIgc2Vpbi4gVW5zZXJlIEV4cGVydGVuIGhhYmVuIGZlc3RnZXN0ZWxsdCwgZGFzIGRhcwpaZW50cnVtIGluIGRlciBXdWVzdGUgbGllZ2VuIHNvbGwgdW5kIGV0d2EgYW0gbW9yZ2lnZW4gTWl0dHdvY2gtCm5hY2htaXR0YWcgc3RhdHRmaW5kZW4gd2lyZC4gQWJlciBrZWluZSBTb3JnZSwgd2lyIGhhYmVuIHVuc2VyZQpTZWlzbW9ncmFwaGVuIGF1Zmdlc3RlbGx0LCB1bmQgd2VyZGVuIHJlY2h0emVpdGlnIEJlc2NoZWlkIGdlYmVuLApzbyBkYXNzIG5pZW1hbmQgZ2VmYWVocmRldCBpc3QuClVuc2VyZSBFeHBlcnRlbiBoYWJlbiB3ZWl0ZXJoaW0gYmVyZWNobmV0LCBkYXMgZGllc2VzIEVyZGJlYmVuIHdvaGwKZWluZW4gZ2V3YWx0aWdlbiBTYW5kc3R1cm0gdmVydXJzYWNoZW4gd2lyZCwgd2VsY2hlciBkYXMgYmlzaGVyaWdlCkF1c3NlaGVuIGRlciBXdWVzdGUga29tcGxldHQgdmVyYWVuZGVybiBrb2VubnRlLiBTb2xsdGVuIGV2dGwuCmlyZ2VuZHdlbGNoZSBXZWdlIHZlcnNjdmh1ZXR0ZXQgd2VyZGVuIGJlbXVlaGVuIHdpciB1bnMgbmF0dWVybGljaAphdWNoIGluIGRpZXNlbSBGYWxsLCBkaWVzZSBXZWdlIHNvIHNjaG5lbGwgd2llIG1vZWdsaWNoIGZyZWl6dWxlZ2VuLApiencgbmV1ZSB6dSBzY2hhZmZlbi4KQWxzbyBMZXV0ZSwga2VpbmUgU29yZ2UsIHdpciB3ZXJkZW4gZGFzIHNjaG9uIGdlbWVpbnNhbSB1ZWJlci0Kc3RlaGVuLgpZb3VycyB0cnVseSwKZWluIG1pdHRsZXJ3ZWlsZSB2aWVsIHp1IHZpZWwgenUgdmVyYW50d29ydGVuZGVyLAogICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFcmRiZWJlbiwgYWJlciB3aWVzbz8gKENhdHdlYXpsZSwgMTkuIEp1bCAxOTk0LCAxOTozNDoyMik6CkhhbGxvZWNoZW4gbm9jaG1hbHMhCldpciBoYWJlbiBudW4gYXVjaCBlbmRsaWNoIGhlcnVhc2dlZnVuZGVuLCB3YXJ1bSB1bnNlciBXYWhyc2FnZXIsCkhleGVyIHVuZCBLYWZlc2F0emxlc2VyIGVpbiBFcmRiZWJlbiBpbiBkZXIgV3Vlc3RlIHZvcnJhdXNnZXNhZ3QKaGFiZW4uIE5hY2ggTWVsZHVuZ2VuIGRlciBBc3Ryb25vbWVuIHVuZCBTdGVybmRldXRlciBmbGllZ3QgZWluCkFzdGVyb2lkIGF1ZiB1bnNlciBnZWxpZWJ0ZXMgTW9yZ2VuR3JhdWVuIGhlcm5pZWRlci4gTmFjaCBtZWhyZXJlbgpzY2h3aWVyaWdlbiBCZXJlY2hudW5nZW4sIGthbSBoZXJhdXMsIGRhcyBkZXIgc29nZW5hbm50ZQonU2hvZW1ha2VyLUxldnkgIzIzJy1Bc3Rlcm9pZCBlYmVuIGdlbmF1IGluIGRlciBXdWVzdGUgaGVydW50ZXItCmtvbW1lbiB3aXJkLiBFaW5lIEthdGFzdHJvcGhlIHNjaGVpbnQgdW5hYndlbmRiYXIuCldlaXRlcmUgTmFjaHJpY2h0ZW4gdW5kIE1lbGR1bmdlbiBnaWJ0IGVzIE1vcmdlbiB6dW0gWmVpdHB1bmt0CmRlcyBHZXNjaGVoZW5zLgoKQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgJ1Nob2VtYWtlci1MZXZ5ICMyMycgaXN0IGVpbmdlc2NobGFnZW4hIChEdXJpYW4sIDIwLiBKdWwgMTk5NCwgMTc6NTc6MzMpOgpIYWxsbyBMZXV0ZSEKCkhldXRlIHVtIDE2LjM4IFVociBpc3QgZXMgZ2VzY2hlaGVuLiBEZXIgS29tZXQgJ1Nob2VtYWtlci1MZXZ5ICMyMycKaXN0IGltIE1vcmdlbkdyYXVlbiBlaW5nZXNjaGxhZ2VuLCBkaXJla3QgaW4gZGVyIFd1ZXN0ZS4gRGllCkVyZGUgZXJiZWJ0ZSBtYWVjaHRpZyB1bmQgZWluZSBQYW5payBsaWVzIHNpY2ggbnVyIHNjaHdlciB2ZXJoaW5kZXJuLgpEYW5rIGRlciBtb2VnbGljaGVuIGZydWVoemVpdGlnZW4gV2FybnVuZyBpc3QgZXMgdW5zIGdlbHVuZ2VuLCBkaWUKVmVybHVzdGUgaW4gR3JlbnplbiB6dSBoYWx0ZW4uCkRvY2ggZGllIFd1ZXN0ZSwgd2llIGlociBzaWUgZWluc3Qga2FubnRldCwgZ2lidCBlcyBudW4gbmljaHQgbWVoci4KRGVyIEtvbWV0IGhhdCBlaW4gbWFlY2h0aWdlcyBFcmRiZWJlbiB2ZXJ1cnNhY2h0LCB3YXMgZGllIGJpc2hlcmlnZQpTdHJ1a3R1ciBkZXIgV3Vlc3RlIHZvZWxsaWcgYXVmIGRlbiBrb3BmIGdlc3RlbGx0IGhhdC4gRWlnZW5sdGljaAppc3QgbmljaHRzIG1laHIgZGEsIHdvIGVzIGVpbnN0IHdhci4gRGllIFd1ZXN0ZSBpc3QgZ3JvZXNzZXIgZ2V3b3JkZW4sCmVzIHNpbmQgR2ViaXJnZSBlbnRzdGFuZGVuIHVuZCBTdGFlZHRlLCBPYXNlbiB1bmQgZWluIHJpZXNpZ2VyIEtyYXRlci4KV2llIHdpciBkaWUgU2FjaGUgYmlzaGVyIGJldXJ0ZWlsZW4ga29lbm5lbiwgc2NoZWluZW4gZGllIFN0YWVkdGUKbmljaHQgenUgYmV0cmV0ZW4gc2Vpbi4gRGEgd2lyIGFiZXIgZGllc2UgbmV1ZW4gR2ViaWV0ZSBmdWVyIEV1Y2ggbmljaHQKYXVmIGV3aWcgdmVyc2NobGllc3NlbiB3b2xsZW4sIHdlcmRlbiB3aXIgdW5zIGRpZSBSZWdpb24gYW5zY2hhdWVuLAp1bmQgZGllIFN0YWVkdGUgYmVpIEdlbGVnZW5oZWl0IG9lZmZuZW4uCkxlaWRlciBsYWVzc3QgZXMgc2ljaCB3b2hsIGF1Y2ggaW4gZGllc2VtIEZhbGwga2F1bSB2ZXJtZWlkZW4sIGRhc3MKd2lyIGFsbGUgc2Nod2VyZW4gRmVobGVyIGltIFJhdW0tWmVpdC1HZWZ1ZWdlIGZpbmRlbiBrb2VubmVuLCBkYWhlcgpzaW5kIHdpciBhdWYgRXVyZSB0YXRrcmFlZnRpZ2UgTWl0aGlsZmUgbWl0IGRlbiBCZWZlaGxlbiA8aWRlZT4sIDxidWc+CnVuZCA8dHlwbz4gYW5nZXdpZXNlbi4KV2lyIGhvZmZlbiwgZGFzcyBkaWUgbnVuIHNvIHdpbGxrdWVybGljaGVuIHZvbiBkZW4gTWFlY2h0ZW4gZGVuIFVuaXZlcnN1bXMKdW1nZXN0ZWxsdGUgV3Vlc3RlIEFua2xhbmcgYmVpIEV1Y2ggZmluZGVuIHdpcmQuCgppbSBOYW1lbiBhbGxlciBXdWVzdGVubWFnaWVyCi0gRHVyaWFuCgpQLlMuOiBEaWUgSGl0emUgaW4gZGVyIFd1ZXN0ZSBoYXQgX2V4dHJlbV8genVnZW5vbW1lbiwgd2FzIGRhenUgZnVlaHJ0LApkYXNzIElociBvaG5lIEtvcGZiZWRlY2t1bmcgdW5kIGdlbnVnIFdhc3NlciBuaWNodCBoaW5kdXJjaGxhdWZlbgpzb2xsdGV0LiBadXIgWmVpdCBpc3QgZGllcyB6d2FyIG5vY2ggZ2VmYWhybG9zLCBhYmVyIGJhbGQgd2lyZCBtYW4KZWluZW4gU29ubmVuc3RpY2ggbnVyIG1pdCBlbnRzcHJlY2hlbmRlbiBWb3JzaWNodHNtYXNzbmFobWVuIHZlcmhpbmRlcm4Ka29lbm5lbi4KRG9jaCBkYXMgd2VyZGVuIHdpciByZWNodHplaXRpZyBiZWthbm50IGdlYmVuIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJlOiBFcmRiZWViZW4gKERhbmNlciwgMjIuIEp1bCAxOTk0LCAwMToyMjo0Nyk6CkVzIHdhciBlaW4gdm9lbGxpZyBub3JtYWxlciBUYWcgdW5kIGljaCBoYWIgZ3JhZCBtZWluZW4gU2FuZHRpZ2VyYmF1Y2ggaW4KZGllIFNvbm5lIGdlc3RyZWNrdCwgdW0gbWljaCB2b20gUGxhbnRzY2hlbiBpbiBkZXIgTmFibGEgenUgdHJvY2tuZW4sIHdlaWwKUm9taWxpIGRhcyBqYSBuaWNodCBtYWcsIHdlbm4gaWNoIHBhdHNjaG5hc3MgbmFjaCBIYXVzZSBrb21tZS4uLgpEYSBrYW0gRHVyaWFuIHVlYmVyIGVpbmUgRHVlbmUgZ2VzY2hsZW5kZXJ0IHVuZCBzZXR6dGUgc2ljaCBlaW5lIFJ1bmRlCm5lYmVuIG1pY2gsIHVtIG1pciB2b24gc2VpbmVyIG5ldWVuIFNhbmRidXJnIHp1IGVyemFlaGxlbi4gSmEgZGFzIExlYmVuIGluCmRlciBXdWVzdGUgd2FyIHNjaG9uIHZvbGxrb21tZW4uLi4gZG9jaCBhdWYgZWlubWFsIGthbSBDYXR3ZWF6bGUgYW5nZXJhbm50LApzdG9scGVydGUgZXJzdG1hbCB1ZWJlciBzZWluZSB2aWVsIHp1IGxhbmdlIFJvYmUsIHB1cnplbHRlIGRpZSBEdWVuZSBiaXMKenUgdW5zIGhlcnVudGVyLCBmaW5nZXJ0ZSBzaWNoIGRlbiBTYW5kIGF1cyBkZW4gT2hyZW4gdW5kIGZ1Y2h0ZWx0ZSBpbW1lcgp3aWVkZXIgYXVmZ2VyZWd0IHp1bSBIaW1tZWwgaG9jaC4KTmFqYSwgYWxzIHdpciBpaG4gdmVyc3RhbmRlbiBoYWJlbiwgd2FyIGVzIHNjaG9uIGZhc3QgenUgc3BhZXQuLi4gYW0KSGltbWVsIHplaWNobmV0ZSBzaWNoIGVpbiBpbW1lciBncm9lc3NlciB3ZXJkZW5kZXIsIHdlaXNzYmxhdWVyIFNjaHdlaWYgYWIsCmRlciBpbW1lciBncm9lc3NlciB3dXJkZSwgdW5kIGdyb2Vzc2VyIHVuZCBncm9lc3Nlci4uLi4KS0FXVVVNTU1NTU0uLi4uIGRlciBLb21ldCBzY2hsdWcgZ2VuYXUgaW4gZGllIG5vcmRvZXN0bGljaGUgV3Vlc3RlIGVpbiwKc2NobGV1ZGVydGUgbWljaCBrdXJ6ZXJoYW5kIGlyZ2VuZHdvIGluIGRlbiBTdWVkZW4sIER1cmlhbiBpbiBkaWUgYW5kZXJlClJpY2h0dW5nIHVuZCBDYXR3ZWF6bGUgd2llZGVyIGluIGVpbmUgYW5kZXJlLiBFaW4gb2hyZW5iZXRhZXViZW5kZXIgS25hbGwKcmlzcyB1bnMgdm9uIGRlbiBGdWVzc2VuIHVuZCBiZWZvZXJkZXJ0ZSBtaWNoIGtvcGZ1ZWJlciBpbiBlaW5lIER1ZW5lLi4uLgppY2ggaGFldHRlIHZpZWxsZWljaHQgdm9yaGVyIGRlbiBNdW5kIFpVIG1hY2hlbiBzb2xsZW4uLi4KQWxzIGljaCBhdWZob2VydGUgenUgaHVzdGVuLCBzYWggaWNoIGluIGRlciBGZXJuZSBEdXJpYW4gYXVmIGVpbmVtIHNwaXR6ZW4KaG9oZW4sIGRyZWllY2tpZ2VuIERpbmcgc2l0emVuLCBkYXNzICBkb2NoIHRhdHNhZWNobGljaCB3aWUgZWluZSBQeXJhbWlkZQphdXNzYWggdW5kIENhdHdlYXpsZSBmbHVjaHRlIGxhdXQsIHdlaWwgZXIgc2VpbmUgZWlnZW5lIFN0YWR0IFZhbGdlc3NhCmthdW0gbm9jaCBmaW5kZW4ga29ubnRlLi4uCkFsbGVzIGhhdHRlIHNpY2ggdmVyYWVuZGVydC4gTmFjaGRlbSBkYXMgRXJkYmVlYmVuIHZlcmtsdW5nZW4gd2FyLCBrYW0KUm9taWxpIGhlcmJlaWdlc2NobnVycnQgdW5kIG5hY2hkZW0gaWNoIG1pciBlcnN0bWFsIGVpbmUgS2F0emVucGZvdGUKZWluZ2VmYW5nZW4gaGF0dGUsIHdlaWwgaWNoIG1hbCB3aWVkZXIgenUgc3BhZXQgd2FyLCBlbnRkZWNrdGVuIHdpciBiZWlkZQpoaW50ZXIgdW5zIGVpbiByaWVzaWdlcyBGZWxzZW5wb3J0YWwsIGRhc3MgaW4gZGVtIHN1ZWRsaWNoZW4gR2ViaXJnZQprbGFmZnRlLCB3aWUgZWluZSBXdW5kZS5OTzoKU2NobGFnYXJ0aWcgZmllbGVuIG1pciBkaWUgR2VzY2hpY2h0ZW4gbWVpbmVzIFZhdGVycyBhbiwgYWxzIGVyIHNlbGJzdApub2NoIGp1bmdlciwgZHluYW1pc2NoZXIgR3JlaWYgd2FyIHVuZCBub2NoIHVlYmVyIGRhcyBHZWJpcmdlIGhpbndlZ2ZsaWVnZW4Ka29ubnRlLCB3ZW5uIGVyIHNpY2ggYW5zdHJlbmd0ZS4uLi4gOykKRXIgaGF0dGUgc28gb2Z0IHZvbiBMaUthbyBlcnphZWhsdC4uLmRlbSBncmVpc2VuIERpbWVuc2lvbnNmb3JzY2hlciwgZGVyCnNlaW4gTGViZW4gbGFuZyBkaWUgREltZW5zaW9uc3RvcmUgZGVyICdBbHRlbicgZ2VzdWNodCBoYXR0ZSB1bmQgaXJnZW5kd2Fubgp3YWVocmVuZCBkZXIgMi4gR3Jvc3NlbiBLcmllZ2Ugc3B1cmxvcyB2ZXJzY2h3dW5kZW4gd2FyLi4uClNvbGx0ZSBkaWVzZXMgUG9ydGFsIHRhdHNhZWNobGljaCBlaW5zIGRpZXNlciBUb3JlIHNlaW4/Pz8gQXVmZ2VyZWd0IHBhY2t0ZW4Kd2lyIHVuc2VyZSBTYWNoZW4genVzYW1tZW4gdW5kIHN0ZWxsdGVuIGVpbmUgRXhwZWRpdGlvbnNtYW5uc2NoYWZ0IHp1c2FtbWVuLgpEYW5uIGhvbHRlbiB3aXIgc2NobmVsbCBub2NoIER1cmlhbiB2b24gZGVyIFB5cmFtaWRlIGhlcnVudGVyIHVuZCBtYWNodGVuIHVucwphdWYgZGVuIFdlZy4gU29sbHRldCBJaHIgdW5zIGFsc28gaW4gWnVrdW5mdCBuaWNodCBzbyBoYWV1ZmlnIGFudHJlZmZlbiwKZGFubiB3YWVyZSBlcyB0YXRzYWVjaGxpY2ggbW9lZ2xpY2gsIGRhc3Mgd2lyIGluIGVpbmVyIGFuZGVyZW4gWmVpdCBzaW5kLAppbiBlaW5lciBQYXJhbGxlbGRpbWVuc2lvbiwgdmllbGxlaWNodCBzb2dhciBpbiBlaW5lciBhbmRlcmVuIFdlbHQhCkFiZXIgd2lyIHdlcmRlbiB3aWVkZXJrb21tZW4gLSB1bmQgYmVyaWNodGVuIQoKSG9mZm51bmdzdm9sbCwKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcmU6IEVyZGJlZWJlbiAoSGlnaGxhbmRlciwgMjIuIEp1bCAxOTk0LCAwOTo1ODoxNyk6Cldhcm51bmc6IFNsaWdodGx5IG9mZiB0b3BpYyEgOj4KPlNjaGxhZ2FydGlnIGZpZWxlbiBtaXIgZGllIEdlc2NoaWNodGVuIG1laW5lcyBWYXRlcnMgYW4sIGFscyBlciBzZWxic3QKPm5vY2gganVuZ2VyLCBkeW5hbWlzY2hlciBHcmVpZiB3YXIgdW5kIG5vY2ggdWViZXIgZGFzIEdlYmlyZ2UgaGlud2VnZmxpZWdlbgo+a29ubnRlLCB3ZW5uIGVyIHNpY2ggYW5zdHJlbmd0ZS4uLi4gOykKTW9vb29vb29vb29tZW50IQpXYXMgc29sbCBkZW5uIGRhcyBoZWlzc2VuIC0gImFscyBlciBzZWxic3Qgbm9jaCBqdW5nZXIsIGR5bmFtaXNjaGVyIEdyZWlmCndhciI/PyAgSWNoIG1hZyBrZWluIGFsbHp1IGp1bmdlciBHcmVpZiBtZWhyIHNlaW4sIG1pdCBiaW9sb2dpc2NoIGdyYWQgbWFsCjc0IEphaHJlbiBiaW4gaWNoIGFiZXIgbm9jaCBndXQgZGFiZWksIHNjaGxpZXNzbGljaCBrYW5uIG1laW5lIEFydCBzbyB1bQpkaWUgMTgwIGFsdCB3ZXJkZW4sIG5vcm1hbGVyd2Vpc2UuIE1pdCBiaW9sb2dpc2NoIG1laW5lIGljaCwgZGFzcyBpY2ggbWFsCmltIEFsdGVyIHZvbiAxMzAgaW4gZWluZW4gVHVlbXBlbCBnZWtuYWxsdCwgYWxzIG1pY2ggZWluIGFuc2NoZWluZW5kIGJlc29mLQpmZW5lciBEcmFjaGUgaW4gZGVyIEx1ZnQgZ2VyYW1tdCBoYXQuIFdlbm4gbWFuIHNpZWh0LCBkYXNzIGVpbmVuIGRlciBhbmRlcmUKZ2VzZWhlbiBoYXQsIHBhc3N0IG1hbiBub3JtYWxlcndlaXNlIGhhbHQgbmljaHQgc28gYXVmLgpVbmQgZGFubiwgendlaSBUYWdlIHNwYWV0ZXIsIGRlbiBrbGVpbmVuIFp3aXNjaGVuZmFsbCBoYXR0ZSBpY2ggc2Nob24gdmVyLQpnZXNzZW4sIHdlcmQnIGljaCBhdWYgZWlubWFsIGp1ZW5nZXIgdW5kIGp1ZW5nZXIuIE9oIE1hbm4sIHdlbm4gaWNoIGVzCm5pY2h0IGdlc2NoYWZmdCBoYWV0dGUsIG1pY2ggZGEgYmVpbSBUdWVtcGVsIG5vY2ggemllbWxpY2ggYWJ6dWZhbmdlbiwKd2FlciBpY2ggd2FocnNjaGVpbmxpY2ggd2llZGVyIGVpbiBrbGVpbmVzIEt1ZWtlbiBnZXdvcmRlbiwgc28gd2FyIGVzIGVpLQpnZW50bGljaCBnYW56IGFuZ2VuZWhtLCB3aWVkZXIgbWl0IGVpbmVtIDI0amFlaHJpZ2VuIEtvZXJwZXIgZHVyY2ggZGllCkdlZ2VuZCB6dSBmbGllZ2VuLiA6PiAgSXN0IGphIG51biBhdWNoIHNjaG9uIHdpZWRlciBlaW4gV2VpbGNoZW4gaGVyOwpzY2hhZGUsIGRhc3MgaWNoIGRlbiBUdWVtcGVsIHNlaXRoZXIgbmllIG1laHIgZ2VmdW5kZW4gaGFiZS4KRWluZXMgbm9jaCAtIG1hY2hlbiB3aXIgZWluZW4gV2V0dGxhdWYvZmx1ZyB1ZWJlcidzIEdlYmlyZ2U/IER1IHNjaGxlcHBzdApEZWluZSBtdWVkZW4gS25vY2hlbiBkdXJjaCBkZW4gRHJlY2sgYW0gQm9kZW4sIHVuZCBpY2ggZmxpZWdlIGVsZWdhbnQKbWl0IGdlbWFlY2hsaWNoZW4gRmx1ZWdlbHNjaGxhZWdlbiBkdXJjaCBkaWUgd3VuZGVyYmFyZSBMdWZ0IHVlYmVyIGRlbgpHaXBmZWxuIGRlciBCZXJnZS4gQmlzIER1IGRhbm4gYXVmIGRlciBhbmRlcmVuIFNlaXRlIGFua29tbXN0LCBtYWNoIGljaCBlaW4KYmlzIHp3ZWkgTmlja2VyY2hlbi4gOj4KU292aWVsIHp1bSBUaGVtYSAia29ubnRlLCB3ZW5uIGVyIHNpY2ggYW5zdHJlbmd0ZSIuIEFuc3RyZW5ndGUsIGtvbm50ZSAtClBhaCEgU28nbiBsYWhtZXMgTGFuZHdlc2VuIHdpZSBEaWNoIGhhZW5nIGljaCBhdWYgZGVyIFN0cmVja2UgZHJlaW1hbCBhYi4KCkRlciB1ZWJlciBkaWUgSnVnZW5kIHZvbiBoZXV0ZSwgaW5zYmVzb25kZXJlIGVpZ2VuZSBOYWNoa29tbWVuLCBkZW4gS29wZgpzY2h1ZXR0ZWxuZGUKCiAgIEhpZ2hsYW5kZXIgcnluIFRhaGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmxhdHRlcm1hbm4gKERhbmNlciwgMjIuIEp1bCAxOTk0LCAxMjowNToxMik6ClBhcHMuLi5qZXR6dCBoYXN0IER1IHNvdmllbCB1ZWJlciBEZWluZSBNaWQtTGl2ZS1DcmlzaXMgZ2VyZWRldCwgZGFzcyBpY2gKc2Nob24gbGFlbmdzdCBhdWYgZGVyIGFuZGVyZW4gU2VpdGUgYmluLgoqZ3JpbnMqCkFiZXIgd28gZXIgZ2VyYWRlIHdpZWRlciBkaWVzZSBvbGxlIEthbWVsbGUgdm9uIFR1ZW1wZWwgYXVzIGRlciBLaXN0ZQpoZXJhdXNnZWtyYW10IGhhdCwgZGllIGVyIG1pciBzY2hvbiBpbW1lciBhbHMgR3V0ZS1OYWNodC1HZXNjaGljaHRlIGVyemFlaGx0CmhhdCwgYWxzIGVyIG5vY2ggRmVkZXJuIGhhdHRlICggKmdyaW5zKiApIHVuZCBtaXIga2xhcm1hY2hlbiB3b2xsdGUsIGRhc3MKaWNoIHNpY2hlcmxpY2ggaXJnZW5kd2FubiBtYWwgZmxpZWdlbiBrb2VubmUgKCBpY2ggZGVua2UgZGEgaW1tZXIgbm9jaCBhbgpkYXMgR2Vncmluc2Ugdm9uIFdvZWxrY2hlbiA7KSApLCBtdXNzIGljaCBub2NobWFsIGRhcmF1ZiB6dXJ1ZWNra29tbWVuLi4uCkljaCB3YXIgZ2VyYWRlIGF1cyBkZW0gU2FuZHRpZ2VyYWx0ZXIgaGVyYXVzLCBhbHMgaWNoIG1pY2ggbnVyIGR1cmNoIGRpZQpHZWdlbmQgcm9sbGVuIGtvbm50ZSwgd2VpbCBtZWluZSBXaW5kZWxuIGFtIEJvZGVuIHNjaGxpZmZlbiB1bmQgbWljaCBiZWltCkxhdWZlbiB6dSBzZWhyIGJyZW1zdGVuLCB1bmQgaWNoIG1laW4gRnJ1ZWhzdHVlY2sgd2VuaWdlciBhc3MgYWxzIG51Y2tlbHRlLApkYSBzcGllbHRlIGljaCB0b2xsZW5kIGF1ZiBlaW5lbSBlcmxvc2NoZW5lbiBWdWxrYW4gaGVydW0sIGZyYWd0IG1pY2ggbmljaHQsCndvIGRlciB3YXIuLi4gbmFqYSBhdWYgamVkZW4gRmFsbCBoYWIgaWNoIGVpbmVtIFNjaG1ldHRlcmxpbmcgeXUgbGFuZ2UKbmFjaGdlc2NoYXV0IHVuZCBiaW4gdWViZXIgZmFzdCB1ZWJlciBkZW4gUmFuZCBpbiBkZW4gS3JhdGVyIGdlcGx1bXN0LCB3YXMKaWNoIGF1Y2ggc2ljaGVybGljaCB3YWVyZSwgd2VubiBkYSBuaWNodCB6dWZhZWxsaWcgSGlnaGxhbmRlciBzY2huYXJjaGVuZApnZXNlc3NlbiB3YWVyZSB1bmQgaWNoIGR1cmNoIGlobiBuaWNodCBnZWJyZW1zdCB3b3JkZW4gd2FlcmUuIFVuZ2x1ZWNrbGljaGVyLQp3ZWlzZSBicmFjaHRlIGRhcyBtZWluZW4gUGFwYS1HcmVpZmVuIGVpbiB3ZW5pZyBhdXMgZGVtIEdsZWljaGdld2ljaHQgdW5kClBMVU1TIGZpZWwgZXIgd2llIGVpbiBTdGVpbiBhbnN0YXR0IG1laW5lciBpbiBkZW4gS3JhdGVyLi4ud2FyIGVpZ2VudGxpY2gKbmV0dCwgZGVuIGFyZ2xuZGVuIEZsYXR0ZXJ2ZXJzdWNoZW4genV6dXNlaGVuIChpcmdlbmR3YXMgd2FyIGRhIHdvaGwgZWluCndlbmlnIHp1IHNjaHdlciA7KSApLCBkaWUgbGVpZGVyIG5pY2h0cyBlaW5icmFjaHRlbi4gU2NobmFiZWx1ZWJlciBsYW5kZXRlCmVyIGluIGVpbmVtIEtyYXRlcnNlZS4gVW5kIG5hY2hkZW0gQW50aGVhIGlobiByYXVzZ2VraWNrdCBoYXR0ZSAoIGVzCmJlc3RhbmQgd29obCBlaW5lIFZlcmJpbmR1bmcgenVtIE1lZXIgKSB1bmQgZGFtaXQgZGVuIEJlZ2lubiBlaW5lciBsYW5nZW4sCmFuaGFsdGVuZGVuZGVuIEZyZXVuZHNjaGFmdCBiZXNjaGxvc3MsIHRhcHBlcnRlIGljaCBtaXQgc2NobGVjaHRlbSBHZXdpc3NlbgpoaW51bnRlciB1bmQga3JvY2ggenUgbWVpbmVtIGF1Zi1kZW0tQm9kZW4tcnVtdGFwcGVybmRlbi1WYXRlci1taXQtCnZlcnNjaHJhZW5rdGVuLUFybWVuIGhpbi4gRG9jaCB3YXMgbXVzc3RlIGljaCBzZWhlbiEgRXIgd2FyIFRBVFNBRUNITElDSApqdWVuZ2VyIGdld29yZGVuLCBkYSB3byB2b3JoZXIga25hY2tpZ2VzLCBuYWNrdGVzIEdyZWlmZW5mbGVpc2NoIHdhciwKd2FyZW4gamV0enQgYnVzY2hpZ2UgRmVkZXJuLCBkZXIgaGFraWdlIFNjaG5hYmVsIGJsaXR6dGUsIGFscyBoYWV0dGUgZXIKaWhuIG1pdCBaYXRvbmdzY2hsZWltIHBvbGllcnQsIHVuZCBkaWUgS3JhbGxlbiBzYWhlbiBlbmRsaWNoIG1hbApnZWZhZWhybGljaCBhdXMhIEFiZXIgd2llIGthbSBkYXM/IEJhZmYgc3RhcnJ0ZW4gd2lyIGF1ZiBkZW4gS3JhdGVyc2VlCnVuZCBiZWdhbm5lbiBsYW5nc2FtIHp1IHZlcnN0ZWhlbi4uLiBtYW4ga29ubnRlIGFsc28ganVlbmdlciB3ZXJkZW4sIGluZGVtCm1hbiBlbnR3ZWRlciBhKSBpbiBkaWVzZW4gU2VlIGh1cGZ0ZSBvZGVyIGIpIGZsYXR0ZXJ0ZSB3aWUgZWluZSB3aWxkLQpnZXdvcmRlbmUgTW90dGUuLi4uIGRhIEhpZ2hsYW5kZXIgbGV0enRlcmVzIGFiZXIgc2Nob24gdm9yaGVyIGRlcyBvZWZ0ZXJlbgpnZW1hY2h0IGhhdHRlLCBtdXNzdGUgZXMgZXJzdGVyZXMgc2Vpbi4uLi4KSXN0IGRpZXNlcyBXaXNzZW4gbmljaHQgZWluZSBTdWNoZSBuYWNoIGRpZXNlbSBTZWUgd2VydCwgSWhyIEFiZW50ZXVyZXI/Pz8KTGVpZGVyIHdlaXNzIGljaCBuaWNodCBtZWhyLCB3byBkYXMgVGVpbCBnZW5hdSB3YXIgOigKCkRhbmNlciAtIFAuUy46IEFiZXIgbmljaHQsIGRhc3MgZWluZXIgamV0enQgYXVmIGRpZSBJZGVlIGtvbW10LCBtZWluIERhZAp3YWVyZSBuaWNodCBERVIgRGFkIHVlYmVyaGF1cHQuLi51bmQgSHVtb3IgaGF0IGVyIGF1Y2ggbm9jaCEgOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZsYXR0ZXJtYWVubmVyIChBbnRoZWEsIDIyLiBKdWwgMTk5NCwgMTI6NDQ6MzUpOgpUamEsIGRhcyB3YXIgc2Nob24gc28gZWluIEVybGVibmlzLCB3aWUgZGllc2VyIGZsYXR0ZXJuZGUgSGFsYnZvZ2VsIGRhIGluCm1laW5lbiBUZWljaCBnZXBsdW1wc3QgaXN0LiBJY2ggaGF0dGUgbWljaCBnZXJhZGUgc28gc2Nob2VuIGVudHNwYW5udCwKZGEgZmFlbGx0IGRpZXNlciBUcmFtcGVsIGF1ZiBtaWNoIGRyYXVmIHVuZCB6ZXJyZWlzc3QgbWlyIGF1Y2ggbm9jaCBkaWUKaHVlYnNjaGUgVGFuZ2JsdXNlLCBkaWUgbWlyIGVpbiBmcmV1bmRsaWNoZXIgRmlzY2ggZHJlaSBUYWdlIHZvcmhlcgpnZXNjaGVua3QgaGF0dGUuIE5hLCBkYSBoYWJlIGljaCBhYmVyIHNlaHIgc2NobmVsbCBkYWZ1ZXIgZ2Vzb3JndCwgZGFzcwpkZXIgR3JlaWYgbmljaHQgbm9jaCBtZWhyIGthcHV0dCBtYWNodCB1bmQgaGFiZSBpaG4gZHVyY2ggZWluZW4ga3JhZWZ0aWdlbgpTY2hsYWcgbWl0IGRlciBTY2h3YW56Zmxvc3NlIGF1cyBkZW0gVGVpY2gga2F0YXB1bHRpZXJ0LiBXYXIgYXVjaCBzZWluCkdsdWVjaywgZGVubiBkYSBnYWIgZXMgd2lya2xpY2ggZWluZSBRdWVsbGUsIGRpZSBhdXMgZWluZW0gTGVjayBkZXMKSnVuZ2JydW5uZW5zIGVudHN0YW5kZW4gaXN0LiBNaXIgbWFjaHQgZGFzIGphIG5peCBhdXMsIGRhIHdpciBNZWVyanVuZ2ZyYXVlbgp6aWVtbGljaCB6ZWl0bG9zIHNpbmQgdW5kIHNvbWl0IHdlZGVyIGFsdGVybiBub2NoIGR1cmNoIGRlbiBCcnVubmVuCnZlcmp1ZW5ndCB3ZXJkZW4ga29lbm5lbi4gQWJlciB3ZW5uIGRlciAoZGFtYWxzKSBhbHRlIFRyb3R0ZWwgbm9jaCBsYWVuZ2VyCmltIFdhc3NlciBnZWJsaWViZW4gd2FlcmUsIGhhZXR0ZSBlciB3YWhyc2NoZWlubGljaCBpbiBlaW5lbSBFaSBldHdhcwpOYWJlbHNjaGF1IGJldHJlaWJlbiBrb2VubmVuLiBMZWlkZXIgd2FyIGljaCBkdXJjaCBkYXMgRXJlaWduaXMgc28gc2VocgphdWZnZWJyYWNodCwgZGFzIGljaCB3aWUgd2lsZCBpbSBTZWUgcnVtZ2VzY2h3b21tZW4gYmluIHVuZCB2b3IgbWljaCBoaW4KZ2VmbHVjaHQgaGFiZSwgZGFzcyBkZXIgYXVmZ2V3aXJiZWx0ZSBTY2hsYW1tIHNjaGxpZXNzbGljaCBkaWUgUXVlbGxlCnZlcnN0b3BmdCBoYXR0ZS4gRGFydW0gaXN0IGRlciBUZWljaCBpbnp3aXNjaGVuIGF1c2dldHJvY2tuZXQsIHVuZCBpY2gKZmluZGUgZGFzIExvY2ggbmljaHQgbWVociwgd28gZGllIFF1ZWxsZSBtYWwgd2FyLiBadW0gR2x1ZWNrIGJlbWVya3RlCmljaCByZWNodHplaXRpZywgZGFzcyBkYXMgV2Fzc2VyIHp1cnVlY2tnaW5nIHVuZCBrb25udGUgbWVpbmUgbGllYmVuCkZpc2NoY2hlbiBub2NoIHJldHRlbi4gQWJlciBkaWUgU3VjaGUgbmFjaCBkZXIgUXVlbGxlIGhhYmUgaWNoIG5vY2ggbmljaHQKYXVmZ2VnZWJlbiwgZGVubiBhdWNoIHdlbm4gbWljaCBkYXMgV2Fzc2VyIG5pY2h0IHZlcmp1ZW5ndCBoYXQsIHNvIGhhdCBlcwpkb2NoIGVpbiBhbmdlbmVobWVzIEtyaWJiZWxuIGF1ZiBkZXIgSGF1dCBlcnpldWd0LiBJY2ggc2FnZSBFdWNoIGJlc3RpbW10CkJlc2NoZWlkLCB3ZW5uIGljaCBkaWUgUXVlbGxlIHdpZWRlciBmcmVpZ2VsZWd0IGhhYmUgdW5kIHNpY2ggZGVyIFNlZSB3aWVkZXIKZnVlbGx0LiBBYmVyIGRpZXNlbiBHZWllciBsYXNzIGljaCBkYSBiZXN0aW1tdCBuaWNodCB3aWVkZXIgcmVpbi4KCiAgICAgIEFudGhlYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGbGF0dGVybWFlbm5lciAoSGlnaGxhbmRlciwgMjIuIEp1bCAxOTk0LCAxMzo0Njo1MCk6CkRhIGZlaGxlbiBtaXIgZG9jaCBnbGVpY2ggZGllIFdvcnRlLiBXYXMgc29sbCBpY2ggZGVubiBkYXp1IHNhZ2VuPwpIaWVyIHZlcmJyZWl0ZW4gTGV1dGUgdWViZXIgbWljaCBTY2hhdWVyZ2VzY2hpY2h0ZW4sIHVuZCBkYXMgb2huZSBtaWNoCnp1IGZyYWdlbj8gV28gc2llIGRvY2ggc28gZ2FyIG5pY2h0IHN0aW1tZW4/IEplZGVuZmFsbHMgbmljaHQgc28sIHdpZQpzaWUgZGEgc3RlaGVuLgpJY2ggbW9lY2h0ZSBldWNoIGJlaWRlbiBkYXMgIkljaC1oYWJlLWtlaW5lLUFobnVuZy12b24tR3JlaWZlbiItRGlwbG9tCnVlYmVycmVpY2hlbiEKW1hdIElociB3aXNzdCBuaWNodCwgZGFzcyBHcmVpZmUgbG9ja2VyIGJpcyAxNzkgZmxpZWdlbiBrb2VubmVuICh1bmQKICAgIG5pY2h0IGltIERyZWNrIHJ1bWtyaWVjaGVuIG9kZXIgaW4gZWluZXIgdHJ1ZWJlbiBTdXBwZSBydW1xdWFwcGVuCiAgICBtdWVzc2VuKQpbWF0gSWhyIHdpc3N0IG5pY2h0LCBkYXNzIDEzMCBub2NoIGtlaW4gaG9oZXMgQWx0ZXIgaXN0LiBBbHNvIGlzdCBkZXIKICAgIEF1c2RydWNrICJhbHRlciBUcm90dGVsIiBzY2hvbiBtYWwgdm9ybmUgZmFsc2NoISA6PgpbWF0gSWhyIHdpc3N0IG5pY2h0LCBkYXNzIHp3YXIgYXVjaCBiZWkgR3JlaWZlbiBUcm90dGVsIHZvcmtvbW1lbiwgZGFzcwogICAgZGFzIGF1ZiBtaWNoIGFiZXIgendpc2NoZW4gMCUgdW5kIGdhciBuaWNodCB6dXRyaWZmdC4gOj4KW1hdIElociB3aXNzdCBuaWNodCwgZGFzcyBpY2ggZGVyIHNjaG9lbnN0ZSwgZ3JvZXNzdGUsIGJlc3RlLCAuLi4uIGJpbgogICAgKmJyZWl0ZXMgR3JpbnNlbioKW1hdIElociBzb2xsdGV0IGV1Y2ggbWFsIGFuIGRpZSBlaWdlbmUgTmFzZSBmYXNzZW4KQXVzc2VyZGVtIHZlcndlY2hzZWx0IGlociBkYSB3YXMuIE1laW5lIEdlc2NoaWNodGUgc3RpbW10IGR1cmNoYXVzIHNvLgpOYSBndXQsIGRpZSBhbmRlcmUgaXN0IHNjaG9uIGF1Y2ggcGFzc2llcnQsIGFiZXIgd2llc28gbXVlc3N0IGlociBkYXMKYXVjaCBub2NoIHZlcm9lZmZlbnRsaWNoZW4/IEtlaW5lbiBSZXNwZWt0IHZvciBtaXIgdW5kIGtlaW4gTWl0bGVpZAptaXQgbWVpbmVtIEVnbyAqc2NobmllZiouCkFsbGVyZGluZ3MgbXVzcyBpY2ggZGF6dSBkb2NoIG5vY2ggZWluaWdlcyBsb3N3ZXJkZW46CkVpbm1hbCBzY2huYXJjaGUgaWNoIG5pY2h0LCBEdSB2b3JsYXV0ZSB1ZWJlcmRpbWVuc2lvbmllcnRlIE1pZXplISA6PgpIYXN0IER1IHNjaG9uIG1hbCB2ZXJzdWNodCwgbWl0IFNjaG5hYmVsIHp1IHNjaG5hcmNoZW4/CkRhbm4gaGFiIGljaCBkZXN3ZWdlbiBnZXNjaGxhZmVuLCB3ZWlsIGVpbiBnZXdpc3NlbiBLYWV0emNoZW4gZWluZW4KSHVuZ2VyIGhhdCwgZGFzcyBpY2ggMjUgU3R1bmRlbiBhbSBUYWcgYXVmIGRlciBKYWdkIHdhci4gTmljaHQsIGRhc3MKaWNoIG5pY2h0IGdlcm5lIGphZ2VuIHd1ZXJkZSwgaW0gR2VnZW50dW0uIEFiZXIgb2huZSBkaWUgUGF1c2VuIGRhendpMApzY2hlbiBtYWNodCBlcyBuaWNodCBzbyByaWNodGlnIFNwYXNzLiBVbmQgd2VubiBpY2ggbmljaHQgYXVmIGRlciBKYWdkCndhciwgbXVzc3RlIGljaCBXaW5kZWxuIHdlY2hzZWxuLiBIYWIgaWNoIGluIGRlciBaZWl0IGFiZ2Vub21tZW4hIQooS2xlaW5lciBUaXAgYW0gUmFuZGU6IExlZ3QgZXVjaCBrZWluZSBLYXR6ZW5iYWJpZXMgenUsIHNjaG9uIGdhciBrZWluZSwKZGllIG1hbCBldHdhcyBncm9lc3NlciB3ZXJkZW4sIGlociBkYSBkcmF1c3NlbiEpClVuZCBkYXNzIGljaCBkaXJla3QgbmFjaCBkZW0gQXVmd2FjaGVuIChFTkRMSUNIIGhhdHRlIGljaCBtYWwgUnVoZSkKbmljaHQgZ2xlaWNodCBkaWUgdG9sbGVuIFJlZmxleGUgaGFiLCBrb2VubnQgaWhyIGV1Y2ggc2ljaGVyIGF1Y2gKdm9yc3RlbGxlbi4KSmV0enQgenUgQW50aGVhOiBEaWVzZSBEcmVja2JydWVoZSB3YXIgRGVpbiBXb2hub3J0PyBOYSwgZGFua2UsIGRhCmxvYmUgaWNoIG1pciBkb2NoIGRpZSBoZXJybGljaGUgTHVmdCB3ZWl0IHVlYmVyIGRlciBFcmRlISA6PgpVbmQ6IFRhbmd3ZXN0ZSAtIER1IG1laW5zdCBuaWNodCB6dWZhZWxsaWcgZGllc2UgaGFsYnZlcmZhdWx0ZW4KdW5kIHd1ZXN0IHZlcmtub3RldGVuIFdhc3NlcnBmbGFuemVuLCBkaWUgaWNoIGJlaW5haGUgbWl0IERlaW5lbgpIYWFyZW4gdmVyd2VjaGVsdCBoYWV0dGU/IE87PgpPaCwgd2FzIGxlcyBpY2ggZGEgbm9jaG1hbD8gImZsYXR0ZXJ0ZSB3aWUgZWluZSB3aWxkZ2V3b3JkZW5lCk1vdHRlIj8hISBBbHNvLCBKdW5nY2hlbiwgaWNoIGdsYXViLCBEdSBiaXN0IHNjaG9uIGxhbmdlIG5pY2h0IG1laHIKdWViZXIncyBLbmllIGdlbGVndCB3b3JkZW4uIFVuZCB3ZW5uIGljaCBtaWNoIG5pY2h0IGlycmUsIGhhc3QgRHUKZGFiZWkgaW1tZXIgZ2VmbGVodCwgaWNoIG1vZWdlIGRvY2ggZWluZW4gQXN0IG9kZXIgZXR3YXMgYW5kZXJlcwpkYXp1IG5laG1lbiAoc292aWVsIHp1bSBUaGVtYSAiZGFubiB3YXJlbiBkaWUgS3JhbGxlbiBlbmRsaWNoIG1hbApnZWZhZWhybGljaCIgOj4pLiBVbmQgTWlkLUxpZmUtQ3Jpc2lzIGhhYiBpY2ggYXVjaCBrZWluZSwgZGFzIGhhYicKaWNoIG1pciBuYWNoIGRlciBlcnN0ZW4sIGFscyBpY2ggenVtIGVyc3RlbiBNYWwgODMgd3VyZGUsIGZpbmcgZGFzCmFuLCBhYmdld29laG50LgpEdSBoYXN0IG1pY2ggdWVicmlnZW5zIG51ciBkZXN3ZWdlbiBuaWNodCBhdWYgZGVyIGFuZGVyZW4gU2VpdGUgZGVzCkdlYmlyZ2VzIGdlZnVuZGVuLCB3ZWlsIG1pciBkYXMgV2FydGVuIGF1ZiBEaWNoIHp1IGxhbmd3ZWlsaWcKd3VyZGUgOz4KQWhlbSwgZGVyIEFydGlrZWwgaXN0IGdsYXViZSBpY2ggbWFsIHdpZWRlciBsYW5nIGdlbnVnLgpCaXMgbmV1bGljaCwKICAgZGVyIEdyZWlmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlOiBGbGF0dGVybWFlbm5lciAoQW50aGVhLCAyMi4gSnVsIDE5OTQsIDE0OjAzOjE3KToKSWNoIGxhc3NlIG1pciBkb2NoIG1laW5lbiBUZWljaCBuaWNodCB2b24gZWluZW0gZGFoZXJnZWxhdWZlbmVuCkJyYXRodWVobmNoZW4gdmVydW5nbGltcGZlbiEgQmV2b3IgRHUgbWljaCBzbyBlcnNjaHJlY2t0IGhhc3Qgd2FyIGRlcgppbiBlaW5lbSB3dW5kZXJiYXJlbiBadXN0YW5kIG1pdCBrbGFyZW0gV2Fzc2VyLiBJY2ggbWVpbiwgZGFzcyBzbyBlaW4KSGl0emtvcGYgd2llIER1IHVudGVyIFdhc3NlciBuaXggc2llaHQsIGlzdCBqYSBhbHRiZWthbm50LiBVbmQgZGFzcyBpY2gKRGljaCBhYiB1bmQgenUgdW50ZXIgV2Fzc2VyIHppZWhlbiBtdXNzLCBkYW1pdCBtYWwgZGllIERyZWNra3J1c3RlCmF1ZndlaWNodC4uLi4gbmFqYSwgZGFzIG11c3MgbWFuIGphIG5pY2h0IHNvIGxhdXQgc2FnZW4uIE5hamEsIHdpZSBkZW0KYXVjaCBzZWkuIEljaCBoYWJlIG1pciBpbW1lcmhpbiBhdXMgZGVuIGdhbnplbiBGZWRlcm4sIGRpZSBIaWdobGFuZGVyIGRhYmVpCnZlcmxvcmVuIGhhdCAoZXIgc2FoIG5hY2ggZGVtIEFic3R1cnogemllbWxpY2ggZ2VydXBmdCBhdXMpIGVpbiBzY2hvZW5lCkZlZGVydmVzdGUgZ2VuYWVodC4gSGF0IGdhbnogZ3V0IGdlaGFsdGVuLCBudXIgbWFuY2htYWwgbXVzcyBpY2ggZGllCkZlZGVybiBuYWNoa2FlbW1lbiwgb2RlciBIaWdobGFuZGVyIG1hbCB3aWVkZXIgZWluZSBuZXVlIGF1c3J1cGZlbiwgd2VubgpzaWUgenUgYWx0IGF1c3NlaGVuLiBEYXMgc2luZCBtYW5jaG1hbCB6aWVtbGljaCB3YWdoYWxzaWdlIEFrdGlvbmVuLCBhYmVyCldvZWxrY2hlbiB1bnRlcnN0dWV0enQgbWljaCBkYWJlaSBqYSB0YXRrcmFlZnRpZy4gVGphLCBkYXMgYXJtZQpXb2Vsa2NoZW4uIEltbWVyIHZlcnN1Y2h0IHNpZSwgaWhyIEhhdXMgc2F1YmVyIHp1IGhhbHRlbiwgdW5kIGRhbm4ga29tbXQKZGllc2VyIEdlaWVyIGFuZ2VzdHVlcnp0IHVuZCB3ZWh0IGlociBkZW4gZ2FuemVuIFN0YXViIHdpZWRlciByZWluLiBadW0KR2x1ZWNrIGhhYmUgaWNoIGRpZSBQcm9ibGVtZSBuaWNodC4gQmlzIGRlciBWb2dlbCB6dSBtaXIgcnVudGVya29tbXQgKHdlbm4KZXIgc2ljaCB1ZWJlcmhhdXB0IGlucyBXYXNzZXIgd2FndCkgZGFubiBpc3QgZXIgc2F1YmVyIGdlbnVnLCB1bSBuaWNodAphbGxlcyBtaXQgc2VpbmVuIERyZWNrcGZvdGVuIHp1IGJlc2NobXV0emVuLiBBYmVyIGljaCBnbGF1YmUsCmRhcyBpc3QgamV0enQgZ2VudWcgZGVyIHNjaG11dHppZ2VuIFdhZXNjaGUgOykKCiAgICAgIEFudGhlYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTogRmxhdHRlcm1hZW5uZXIgKER1cmlhbiwgMjIuIEp1bCAxOTk0LCAxNDowNToxNik6ClRqYWphamFqYSAuLi4KQWxzIGVpbmVyIGRlciBlcnN0ZW4gTWFnaWVyIGRpZXNlcyBNVURzIHdhZXJlIGljaCBpbiBkZXIgTGFnZSwKRXVjaCBHZXNjaGljaHRlbiwgdWViZXIgZGllIEtpbmRoZWl0IGRpZXNlcyBzaWNoIHNvIHNlaHIgaGVydm9yaGViZW5kZW4KR3JlaWZlbiB6dSBlcnphZWhsZW4uIERhIGljaCBhYmVyIGlobiBhYmVyIGRlbSBTcG90dCB1bmQgR2VsYWVjaHRlcgpzZWluZXMgKGltIHVlYnJpZ2VuIHNlaHIgZnJldW5kbGljaGVuIHVuZCBuZXR0ZW4gKSBUaWdlcnNvaG5lcyBuaWNodAphdXNzZXR6ZW4gbW9lY2h0ZSwgbGFzc2UgaWNoIGRlbiBNYW50ZWwgZGVzIFNjaHdlaWdlbnMgbGllYmVyIHVlYmVyCmRpZXNlciBHZXNjaGljaHRlLgpOdXIgc292aWVsIHNlaSBnZXNhZ3QgLi4uIGVyIGlzdCBuaWNodCBudXIgZWlubWFsIGluIGVpbmUgc3RpbmtlbmRlCktsb2FrZSBnZWZhbGxlbiwgZ2VsbGUgaGlnaGxhbmRlciwgRHUgd2Fyc3QgbmljaHQgaW1tZXIgc28gYWx0IDotKQoKLSBEdXJpYW4sIGRlciB1ZWJlciBkaWUgS2luZGhlaXQgZmFzdCBqZWRlbiBNYWdpZXJzIGhpZXIgQmVzY2hlaWQgd2Vpc3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmU6IFJlOiBGbGF0dGVybWFlbm5lciAoSGlnaGxhbmRlciwgMjIuIEp1bCAxOTk0LCAxNDowNzozNyk6CmEpIER1IHNjaHJlaWJzdCBqZXR6dCB0YXVzZW5kbWFsIGRlbiBTYXR6CiAgICJJY2ggZGFyZiBrZWluZW4gR3JlaWZlbiBhbHMgR2VpZXIgb2RlciBCcmF0aHVlaG5jaGVuIGJlemVpY2hlbi4iCmIpIERyZWNra3J1c3RlPyBCaW4gZG9jaCBrZWluIFNjaGxhbW1rcmllY2hlci4gU2NobGFtbSBoYXQncyBpbiBHZXdhZXMtCiAgIHNlcm4sIGFiZXIgbmljaHQgaW4gZGVyIEx1ZnQuCmMpIEZlZGVybjogSmEsIGF1YSwgYWxsZXJkaW5ncy4gRGFzIHRhdCB3ZWguCmQpIEljaCB3ZWhlIGtlaW5lbiBTdGF1YiBSRUlOLCBpY2ggd2lyYmxlIGlobiBob2VjaHN0ZW5zIEFVRi4KZSkgTmVpbiwgaWNoIG1hZyBXYXNzZXIgZHVyY2hhdXMuIEFiZXIga2VpbiBBbnRoZWEtdmVyc2V1Y2h0ZXMgOz4KCiAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSnVuZ2JydW5uZW5xdWVsbGUgKEFudGhlYSwgMjIuIEp1bCAxOTk0LCAxNjoxNjowOSk6CkthdW0gaGF0IG1hbiBldHdhcyBhdXNnZXNwcm9jaGVuIChiencuIGdlc2NocmllYmVuKSwgc2Nob24gaXN0IGVzIHdpZWRlcgp1ZWJlcmhvbHQuIE1laW5lIFN1Y2hlIG5hY2ggZGVyIFF1ZWxsZSB3YXIgc2NobGllc3NsaWNoIGVyZm9sZ3JlaWNoLiBFaW4KcGFhciBpbiBkZXIgTmFlaGUgd29obmVuZGUgRWxiZW4gaGFiZW4gbWlyIGVpbmVuIFRpcCBnZWdlYmVuLCB3byBpY2gKenUgZ3JhYmVuIGhhZXR0ZS4gSW4gZGVyIE5hZWhlIGRpZXNlcyBPcnRlcyBnbGVpY2ggZ2VzcHVlcnQsIGRhc3MgZGEKZHJ1bnRlciBXYXNzZXIgaXN0LiBXYXJ1bSBtaXIgZGFzIHZvcmhlciBudXIgbmljaHQgYXVmZ2VmYWxsZW4gaXN0Li4uIE5hamEuClNjaGxpZXNzbGljaCBoYWJlIGljaCBtaXIgbWFsIERhbmNlcnMgS3JhbGxlbiBhdXNnZWxpZWhlbiwgZGVubiBzbyBlaW4KU2FuZHRpZ2VyIGlzdCB6dW0gR3JhYmVuIGJlc3NlciBnZWJhdXQgYWxzIGVpbmUgemllcmxpY2hlIE1lZXJqdW5nZnJhdSwKdW5kIHdhciBzZWhyIGVyZnJldXQsIGRhc3MgZGFzIFdhc3NlciB3aWVkZXIgc3BydWRlbHRlLiBEYW5jZXIgd2FyIGRhCm5pY2h0IHNvIGJlZ2Vpc3RlcnQuIEljaCBoYXR0ZSBpaG0gbmljaHQgdmVycmF0ZW4sIHdhcyBpY2ggZGEgc3VjaGUsIHVuZApzb21pdCBpc3QgZXIgemllbWxpY2ggbmFzcyBnZXdvcmRlbi4gVGphLCBpbW1lciBkaWVzZSB3YXNzZXJzY2hldWVuIEthdHplbi4KWnVtIEdsdWVjayBpc3QgZXIgc28gc2NobmVsbCB3ZWdnZXNwcnVuZ2VuIHVuZCBoYXQgZGFzIFdhc3NlciBhYmdlc2NodWV0dGVsdCwKZGFzcyBlciBudXIgZWluIHBhYXIgVGFnZSBqdWVuZ2VyIGdld29yZGVuIGlzdC4gQWJlciBpY2ggaGFiZSBudW4gbWVpbmVuCmh1ZWJzY2hlbiBTZWUgaW4gZGVtIG5vY2ggaHVlYnNjaGVyZW4gS3JhdGVyIHdpZWRlciwgdW5kIGRpZSBFbGJlbiBzaW5kCmF1Y2ggZnJvaCwgZGFzcyBkYXMgV2Fzc2VyIHdpZWRlciBkYSBpc3QuIEtvbW10IG1pY2ggZG9jaCBtYWwgZGEgYmVzdWNoZW4sCndlbm4gaWhyIGRlbiBTZWUgZmluZGVuIHNvbGx0ZXQuLi4uCgogICAgICAgQW50aGVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlOiBSZTogUmU6IEZsYXR0ZXJtYWVubmVyIChaYXJkb3osIDIyLiBKdWwgMTk5NCwgMTc6MDQ6MjApOgpNYWdpZXIgaGFiZW4gZWluZW4gU2NoYWRlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFphcmRveiAoQ2F0d2VhemxlLCAyMi4gSnVsIDE5OTQsIDE4OjI1OjU0KToKSmF1ClB1bmt0CkNhdHdlYXpsZQo6LSkpKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEp1bmdicnVubmVucXVlbGxlIChIdW1waHJleSwgMjIuIEp1bCAxOTk0LCAxODoyODo0Mik6CkphIHNlaWQgaWhyIGRlbm4gd2FobnNpbm5pZz8/PwpJY2ggaGFiIEV1Y2ggZG9jaCBhdXNkcnVlY2tsaWNoIHZlcmJvdGVuIHVlYmVyIGRpZXNlcyBUaGVtYSB6dSByZWRlbiEKSWhyIHdpc3N0IGdlbmF1LCB3YXMgZGFtYWxzIG1pdCBTdGFubGV5IHBhc3NpZXJ0IGlzdC4gVm9uIG1pciBnYW56IHp1CnNjaHdlaWdlbi4KRGFzIGhhc3QgRHUgZG9jaCBnYXJhbnRpZXJ0IHdpZWRlciB2b24gTWVsYSwgbmljaHQgd2FociBBbnRoZWE/ClZlcmRhbW10ZSBGcmF1ZW5iYW5kZS4uLgpOaWNodHMgYWxzIFNjaGVyZXJlaWVuLi4uLgoKSHVtcGhyZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaYXJkb3ogKER1cmlhbiwgMjUuIEp1bCAxOTk0LCAxMDowNjoyOSk6Ck1PTUVOVCEKCldpZXNvIGhhYmVuIE1hZ2llciBlaW5lbiBTY2hhZGVuPyBOdXIsIHdlaWwgc2llIHNpY2ggc3RhZW5kaWcgZ2VnZW5zZWl0aWcKYmVzY2hpbXBmZW4/IE51ciwgd2VpbCBzaWUgZWluZSBKYWdkIGF1ZiBKdW5nYnJ1bm5lbiBzdGFydGVuLCBkYW1pdCBzaWUKYWVobmxpY2gganVuZyB1bmQga251c3ByaWcgYXVzc2VoZW4sIHdpZSBkaWUgbmV1ZXJlbiBTcGllbGVyIChnZWxsbQpIaWdobGFuZGVyLCBEdSBzaWVoc3QgbnVyIG5vY2ggYXVmICduZW0gR3JpbGwga251c3ByaWcgYXVzIDotKSksIG51cgp3ZWlsIGRlciBWYXRlciBlaW4gR3JlaWYgdW5kIGRhcyBLaW5kIGVpbiBTYW5kdGlnZXIgaXN0LCBudXIgd2VpbCBKb2YKYWxzIEhlcnIgdW5kIE1laXN0ZXIgZGllc2VzIE1VRFMgc3RhZW5kaWcgaWRsZSBpc3QsIHVuZCBudXIgZGFubiBldHdhcwpzYWd0LCB3ZW5uIGVyIG5pY2h0IGdlZnJhZ3QgaXN0LCBudXIgd2VpbCBpY2ggamV0enQgZGllc2VuIGJlc2NoZXVlcnRlbgpBcnRpa2VsIHNjaHJlaWJlLCBudXIgd2VpbCBpbiBkZXIgV3Vlc3RlIGVpbiBLb21ldCBlaW5nZXNjaGxhZ2VuIGlzdCwKd2FzIG9mZmVuc2ljaHRsaWNoIG5pY2h0IHVuc2VyZSBTY2h1bGQgaXN0LCBudXIgd2VpbCBlaW5lIE1lZXJqdW5nZnJhdQplaW5lbiBTYW5kdGlnZXIgYWxzIEJhZ2dlciBtaXNzYnJhdWNodCwgbnVyIHdlaWwgZGllIFd1ZXN0ZSBtaXQgZHJlaQpuaWNodCB6dSBiZXRyZXRlbmRlbiBTdGFlZHRlbiBhbmdlc2NobG9zc2VuIHd1cmRlIE9ERVIgV0FTPz8KRVJrbGFlcnVuZyBlcnd1ZW5zY2h0IDotKQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogWmFyZG96IChaYXJkb3osIDI1LiBKdWwgMTk5NCwgMTA6MDk6MTEpOgpOdXIgZGVzaGFsYi4uLi51bmQgdmllbGVzIG1laHIuLi4KUmVpY2h0IGRpZSBFcmtsYWVydW5nLCBEdXJpYW4gPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFphcmRveiAoRHVyaWFuLCAyNS4gSnVsIDE5OTQsIDEwOjIwOjIzKToKSG1tbSwgd2VuIGRlbSBzbyB6dSBzZWluIHNjaGVpbnQsIHd1ZXJkZSBpbiBqZWRlciBGb3JtIGhlcnZvcmhlYmVuIHdvbGxlbiwKdW5kIGRhcyBpbiBqZWRlciBGb3JtIGF1Y2ggc28gbWVpbmVuIHR1biwgYWxzbyBnYW56IG9obmUgRWlud2FlbmRlLCBkYXNzCkR1LCBkZXIgRHUgYmlzdCBaYXJkb3osIHVuZCBuaWVtYW5kIHNvbnN0LCBpbiBqZWRlciBGb3JtLCBzbyBtZWluZSBpY2gsCmR1cmNoYXVzIGRhcyBSZWNodCBhdWYgRGVpbmUgU2VpdGUgaGFiZW4gdHVzdCEKCkhpZXJtaXQgc3RlbGxlIGljaCBmZXN0OgoKQUxMRSBNQUdJRVIgSEFCRU4gRUlORU4gU0NIQURFTiBTSU5EIFNUT0xaIERBUkFVRiEhISEgOi0pCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJmb3JzY2hlIGRpZSBQeXJhbWlkZW4gKER1cmlhbiwgIDMuIEF1ZyAxOTk0LCAxMToxODowNik6CkhhbGxvIElociB3YWdlbXV0aWdlbiBBYmVudGV1cmVyIHVuZCBBYmVudGV1cmVyaW5uZW4hCgpFcyBpc3QgZWluZSB3aXJrbGljaCB2ZXJ6ZWlmZWx0ZSBTaXR1YXRpb24sIGluIGRpZSBuYWNoIGRlbSBFaW5zY2hsYWcKZGVzIEtvbWV0ZW4gZ2VyYXRlbiBiaW4uIEljaCBzdGVoZSB2b3IgZ3Jvc3NlbiBQcm9ibGVtZW4gdW5kIGhvZmZlIGF1ZgpFdXJlIE1pdGhpbGZlIQoKRG9jaCB3YXMgaXN0IGVpZ2VudGxpY2ggcGFzc2llcnQ/IFdpZSBJaHIgd2lzc3QgaXN0IGFtIDIwLiBKdWxpIDE5OTQKdW0gMTYuMzggVWhyIGRlciBLb21ldCAnU2hvZW1ha2VyLUxldnkgIzIzJyBpbSBNb3JnZW5HcmF1ZW4sIGdlbmF1ZXIKaW4gZGVyIFd1ZXN0ZSBlaW5nZXNjaGxhZ2VuLiBEaWVzZSBOYWNocmljaHQgZ2luZyBqYSBydW5kIHdpZSBlaW4KTGF1ZmZldWVyLiBEb2NoIG1pdCBkaWVzZW0gRWluc2NobGFnIGhhdCBzaWNoIHZpZWwgaW4gZGVyIFd1ZXN0ZQp2ZXJhZW5kZXJ0LiBTaWUgaXN0IGdyb2Vzc2VyIGdld29yZGVuIHVuZCB2aWVsZSBuZXVlIFN0YWVkdGUgdW5kClJlZ2lvbmVuIHNpbmQgd2llIGF1cyBkZW0gTmljaHRzIGF1ZmdldGF1Y2h0LiBXaXIsIGRpZSBXdWVzdGVubWFnaWVyIGhhYmVuCmxhbmdlIGdlYnJhdWNodCwgdW0gdW5zIHdpZWRlciBlaW5pZ2VybWFzc2VuIHp1cmVjaHQgenUgZmluZGVuCihDYXR3ZWF6bGUgaGF0IHZlcnp3ZWlmZWx0IHNlaW4gZ2VsaWVidGVzIFZhbGdlc3NhIGdlc3VjaHQgdW5kIERhbmNlcgpzdGFycnRlIG1pdCBvZmZlbmVtIE11bmQgYXVmIGRhcyBEaW1lbnNpb25zdG9yKS4gTnVuLCBpY2ggaGF0dGUgZGFzClByb2JsZW0sIGRhc3MgaWNoIG1pY2ggcGxvZXR6bGljaCBhdWYgZGVyIFNwaXR6ZSBlaW5lciBQeXJhbWlkZSBiZWZhbmQKdW5kIG5pY2h0IHNvIHJlY2h0IHd1c3N0ZSwgd2FzIGhpZXIgZWlnZW50bGljaCBsb3Mgd2FyLgoKTmFjaGRlbSBEYW5jZXIgdW5kIENhdHdlYXpsZSBzbyBuZXR0IHdhcmVuLCB1bmQgbWlyIGhlcnVudGVyZ2Vob2xmZW4KaGF0dGVuLCB2ZXJzdWNodGUgaWNoIG1pdCBkZXIgbm90d2VuZGlnZW4gRW50c2NobG9zc2VuaGVpdApoZXJhdXN6dWZpbmRlbiwgd2VsY2hlcyBHZWhlaW1uaXMgaGludGVyIGRlbSBwbG9ldHpsaWNoZW0gQXVmdGF1Y2hlbgpkZXIgUHlyYW1pZGVuIHN0YW5kLiAKCk1laW5lIGVyc3RlIFZlcm11dHVuZyB3YXIsIGRhc3MgZXMgc2ljaCBoaWVyYmVpIHVtIG1laW5lIGFsdGVuLAp2ZXJzY2hvbGxlbmVuLCBsYWVuZ3N0IHZlcmdlc3NlbmVuIFB5cmFtaWRlbiBoYW5kZWxuIGtvZW5udGUuIFVuZAp0YXRzYWVjaGxpY2gsIHNpZSB3YXJlbiBlcywgYWJlciBuaWNodCBtZWhyIHNvLCB3aWUgaWNoIHNpZSBlaW5zdCBrYW5udGUuClRhdHNhZWNobGljaCBoYXR0ZSBudW4gZGFzIEJvZXNlIEVpbnp1ZyBpbiBkaWUgUHlyYW1pZGVuIGdlaGFsdGVuIHVuZApiZXN0aW1tdGUgdm9uIGRvcnQgdWViZXIgZGFzIFNjaGlja3NhbCBkZXIgTGV1dGUgaW4gZGVyIGtsZWluZW4gU3RhZHQKTGFzaCBpbiBkZXIgV3Vlc3RlLgoKV2llIGFiZXIgaXN0IGRhcyBCb2VzZSBpc3QgZGllIFB5cmFtaWRlbiBnZWtvbW1lbj8gRGFzIFZvbGsgdm9uIExhc2gKdmVyZWhydGUgZWluc3QgZWluZW4gYmVydWVobXRlbiBLdWx0LCBkZW4gR2llc2hha3VsdCwgZGVyIG1hZWNodGlnIHVuZApzdGFyayB3YXIsIHVuZCBkYXMgVm9sayBnZXJlY2h0IHJlZ2llcnRlLiBEZXIgS3VsdCBlaHJ0ZSBkZW4gR290dApUYWFyLCBkZXIgaWhuZW4gTGljaHQgdW5kIExlYmVuIHNjaGVua3RlLiBBdWYgZGVtIEhvZWhlcHVua3QgZGVyIE1hY2h0CmRlcyBLdWx0ZXMgZXJiYXV0ZW4gZGllIFByaWVzdGVyIFRhYXJzIHJpZXNpZ2UgUHlyYW1pZGVuLCB1bSBkaWUKSG9oZXByaWVzdGVyIGRhcmluIHp1IGJlZ3JhYmVuLiBVbmQgc28gbGVidGUgZGFzIFZvbGsgZ2x1ZWNrbGljaCB1bmQKenVmcmllZGVuLgoKRG9jaCB1bmVyd2FydGV0IGJyYWNoIGRpZSBNYWNodCBkZXMgS3VsdGVzLCB3ZWlsIEh1bmdlciB1bmQgVG9kIHVlYmVyCmRhcyBMYW5kIGhlcmVpbmJyYWNoZW4uIERhcyBWb2xrIHdlbmRldGUgc2ljaCB2b24gVGFhciBhYiwgdW5kIGRhcwpCb2VzZSBiZWdhbm4sIGRlbiBLdWx0IHp1IHVlYmVybmVobWVuLiBEZXIgYm9lc2UgRGFlbW9uIFphY2NhdGEgd2FyIGVzCnNjaGxpZXNzbGljaCwgZGVyIGRpZSBTZWVsZSBkZXMgbGV0enRlbiBIb2hlcHJpZXN0ZXJzIHRyYW5rIHVuZCBzZWluZQpHZXN0YWx0IGFubmFobS4gRm9ydGFuIGhlcnJzY2h0ZSBudXIgbm9jaCBkYXMgQm9lc2UgdWViZXIgZGFzIExhbmQuCgpOdW4sIGRhIGljaCBkdXJjaCBkaWUgUHlyYW1pZGVuIGdlem9nZW4gYmluLCB1bSBtaWNoIG5ldSB6dQpvcmllbnRpZXJlbiwga2FubiBpY2ggc2FnZW4sIGRpZSBQeXJhbWlkZW4gc2luZCBnZWZhZWhybGljaCBnZXdvcmRlbi4KT2hqYSwgYWJlciBkYXMgQm9lc2UgaXN0IG5pY2h0IHVuYmVzaWVnYmFyLiBEYXMgQm9lc2UgaGF0IGVpbmUKZW50c2NoZWlkZW5kZSBTY2h3YWNoc3RlbGxlLCBlcyBpc3QgdmVyd3VuZGJhciBnZWdlbiBnZWJhbGx0ZSBNYWdpZS4KTWFuIG11bmtlbHQgaW4gTGFzaCwgZGFzcyBtYW4gZGllIGdyb3NzZW4gbWFnaXNjaGVuIEdlZ2Vuc3RhZW5kZQpzdWNoZW4gdW5kIGZpbmRlbiBtdXNzLCB1bSBzaWNoIHNjaGxpZXNzbGljaCBkZW0gRWluZW4genUgc3RlbGxlbi4KRGllc2VtIGVpbmVuLCBkZW0gYm9lc2VuIERhZW1vbiBaYWNjYXRhLCBtdXNzIG1hbiBkZW4gU3RlaW4gZGVyIE1hY2h0CmVudHJlaXNzZW4gdW5kIGFuIGRhcyBMaWNodCBkZXIgU29ubmUgYnJpbmdlbi4KCkZ1ZXIgZGllc2Ugc2Nod2VyZSBBdWZnYWJlIHN1Y2hlIGljaCBudW4gSGVsZmVyLiBJY2ggc3VjaGUgbXV0aWdlCkthZW1wZmVyIHVuZCB0YXBmZXJlIEtyaWVnZXJpbm5lbiBkaWUgYmVyZWl0IHNpbmQsIGlociBMZWJlbiBmdWVyIGRpZQphcm1lbiBMZXV0ZSBpbiBMYXNoIHp1IHJpc2tpZXJlbi4gV2VubiBJaHIgZGF6dSBiZXJlaXQgc2VpZCwgc28gZ2VodCAKenUgSW5hbiwgZGVtIERvcmZhZWx0ZXN0ZW4gaW4gTGFzaCB1bmQgZnJhZ3QgaWhuIG5hY2ggRXVyZXIgQXVmZ2FiZQp1bmQgbmFjaCBkZW0gS3VsdC4gRXIgd2lyZCBzb3ZpZWwgZXJ6YWVobGVuLCB3aWUgZXIgd2Vpc3MuIAoKSWNoIHd1ZW5zY2hlIEV1Y2ggdmllbCBHbHVlY2shIQoKLSBEdXJpYW4KClAuUy46IERhIGRpZSBQeXJhbWlkZW4gc2VociBsYW5nZSB2ZXJzY2hvbGxlbiB3YXJlbiwgbW9lY2h0ZSBpY2ggYXVjaCB1bmQKdm9yIGFsbGVtIGRpZSBhZWx0ZXJlbiBTcGllbGVyIGF1ZmZvcmRlcm4sIGludGVuc2l2IG5hY2ggWmF1YmVydHJhZW5rZW4KQXVzc2NoYXUgenUgaGFsdGVuLiBLb2VubnRlIGhpbGZyZWljaCBzZWluIC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuc2NobHVzcyBhbiBEc2NodW5nZWwgLi4uIChEdXJpYW4sICA1LiBBdWcgMTk5NCwgMTQ6NTE6MzIpOgpIYWxsbyB6dXNhbW1lbiEKCkhldXRlIGhhYmUgaWNoIGRlbiBEc2NodW5nZWwgYW5nZXNjaGxvc3NlbiAoenVzYW1tZW4gbWl0IEd1bSBuYXR1ZXJsaWNoKS4KRGFzIGhlaXNzdCwgZGVyIGxldHp0ZSBXZWcsIGRlciBpbnMgTmljaHRzIGZ1ZWhydGUgaGF0IGVuZGxpY2ggZWluIFppZWwgOy0pCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2FuZHRpZ2VycyBGYW1pbGllbmFsYnVtIChEYW5jZXIsIDIyLiBBdWcgMTk5NCwgMTM6MDU6MDMpOgpIaSwKCiAgbmFjaGRlbSBpY2ggYXVmIGRlciBNVUQtRmV0ZSAoZGllIGphIHdvaGwgc3VwZXJnZWx1bmdlbiB3YXIhKSB2b24gc28KdmllbGVuIExldXRlbiBhbmdlc3Byb2NoZW4gd29yZGVuIGJpbiwgd2FubiBlcyB3ZWl0ZXJnZWh0IG1pdCBkZW4KRmFtaWxpZW5zdG9yaWVzLCB3b2xsdGUgaWNoIG1hbCBlaW5pZ2UgWmVpbGVuIGRhenUgc2NocmVpYmVuLi4uIGljaCB3ZXJkZSBlcnN0Ck1pdHRlIFNlcHRlbWJlciB3aWVkZXIgZGF6dSBrb21tZW4sCnJlZ2VsbWFlc3NpZyBpbSBNVUQgenUgc2Vpbiwgd2FzIGFiZXIgZ2FyIG5pY2h0IHNvIHVlYmVsIGlzdCwgd2VpbCBpY2ggZGllClplaXQgc293aWVzbyBicmF1Y2hlLCB1bSBtaWNoIGhpZXIgZ3V0IHp1IHZlcnN0ZWNrZW4sIGJldm9yIGljaCBkaWUgZ2FuemVuCmtsZWluZW4gKHVuZCBncm9zc2VuKSBgUGFubmVuYCBkZXIgRmFtaWxpZSBhdXNiYWJiZWxlIChzY2hhdSBuaWNodCBzbyBib2VzLApQYXBhLVZvZ2VsISA7KSApLi4uCkRlbW5hZWNoc3QgZ2VodCBlcyBhbHNvIHdlaXRlciBtaXQgR3JlaWZlbiZTYW5kdGlnZXJuJk1lZXJqdW5nZnJhdWVuIHVuZApDby4uLi4uCgpCaXMgZGFubgoKRGFuY2VyCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBaYXJkb3ogKE5vYm9keSwgMjguIEF1ZyAxOTk0LCAxNToyNzoxOCk6ClphcmRveiwgRFUgQklTVCBET0NIIE1BR0lFUiEhISA7KQpBbHNvIGxhZXN0ZXIgbmljaHQhIDopKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBIZWJlbCBpbiBkZXIgU3BpZWxweXJhbWlkZSAuLi4gKER1cmlhbiwgMjkuIEF1ZyAxOTk0LCAxMjo0ODoxNyk6Ci4uLiBrYW5uIGJlaSBCZW51dHp1bmcgKGRpZXMgaXN0IFplaWNoZW4gZGFmdWVyLCBkYXNzIG1hbiBzaWNoIHZlcmxhdWZlbgpoYXQhISEhKSB6dW0gVG9kZSBmdWVocmVuLiBEYXZvciB3aXJkIGdld2FybnQuIFVuZCBlaW5lIHNvbGNoZSBTYWNoZSBoYXQKbmljaHRzIGRhbWl0IHp1IHR1biwgd2lldmllbGUgTFAgbWFuIHZvcmhlciBoYXR0ZS4KSWNoIHNhZ2UgZGllcyBudXIsIHdlaWwgbWljaCB3aWVkZXJob2x0IExldXRlIGRyYXVmIGFuZ2VzcHJvY2hlbiBoYWJlbiwKb2IgZXMgcmljaHRpZyBzZWluIGthbm4sIGRhc3MgbWFuIDIwMiBMUCdzIHZlcmxpZXJ0LiBBbnR3b3J0OiBKYSwgZXMga2Fubi4KRGFzIExlYmVuIGlzdCBoYXJ0LCBhYmVyIGRhZnVlciB1bmdlcmVjaHQhCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2FtcGYgZGVyIE11c3RlcmxvZXN1bmcgOi0pIChEdXJpYW4sICA5LiBTZXAgMTk5NCwgMTA6MzI6NDApOgpIYWxsbyB6dXNhbW1lbiEKCkRlbSBWb3JzY2hsYWcgdmVyc2NoaWVkZW5lciBNYWdpZXIgdW5kIGF1Y2ggU3BpZWxlciBmb2xnZW5kLCBoYWJlIGljaAplcnN0ZSBNYXNzbmFobWVuIGdlZ2VuIGVpbmUgTXVzdGVybG9lc3VuZyBpbiBkZXIgc3VlZGxpY2hlbiBQeXJhbWlkZQplcmdyaWZmZW4uIEljaCBtb2VjaHRlIEV1Y2ggYWxzbyB3YXJuZW4sIGVpbmZhY2ggbWl0IGRlbiBMb2VzdW5nZW4sIGRpZQppaHIgYmVrb21tZW4gaGFidCBkdXJjaHp1cmVubmVuLiBEYXMga2FubiBzZWhyIGdlZmFlaHJsaWNoIHdlcmRlbi4gQXVjaApiZWltIFdpZWRlcmJldHJldGVuIHNvbGx0ZXQgSWhyIGV1Y2ggbWl0IGRlbiBBdWZnYWJlbiBnZW5hdWVyIGJlZmFzc2VuLApzaWUgYWVuZGVybiBzaWNoIGJlaSBqZWRlbSBFaW50cml0dCEKWnVyIFplaXQgYmV0cmlmZnQgZGllcyBudXIgd2VuaWdlIEF1ZmdhYmVuLCBhYmVyIGljaCB3ZXJkZSBkaWVzIG5hY2ggdW5kCm5hY2ggZXJ3ZWl0ZXJuIQoKLSBEdXJpYW4KClAuUy46IERpZXMgaXN0IGF1Y2ggZWluZSBBdWZmb3JkZXJ1bmcgYW4gYW5kZXJlIE1hZ2llciBNdXN0ZXJsb2VzdW5nZW4genUKUXVlc3RzIHp1IGJla2FlbXBmZW4hISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLYW1wZiBkZXIgTXVzdGVybG9lc3VuZyA6LSkgKEtsaW5nZSwgIDkuIFNlcCAxOTk0LCAxMjoyODozOSk6CldhcyBiaXR0ZSBpc3QgZWluZSAiTXVzdGVybG9lc3VuZyI/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLYW1wZiBkZXIgTXVzdGVybG9lc3VuZyA6LSkgKEZsaW50bmFpbCwgMTIuIFNlcCAxOTk0LCAxODozODozMSk6CkZpbmQgaWNoIGd1dCBEdXJpYW4uLi5TZWhlciBzb2xsdGUgbnVyIGRlciB3ZXJkZW4sIGRlciBlcyBzaWNoIGF1Y2ggdmVyZGllbnQKaGF0Li4uLmhhYiBzZWxiZXIgZWluZSBLb21wbGV0dGxvZXN1bmcgZnVlciBPbWEgV2V0dGVyd2FjaHMgYmVudXR6dCB1bmQgZmFuZApkYXMgZ2FuemUgRGluZyBudXIgbm9jaCBsYW5nd2VpbGlnLi4uLiEuLi5hYmVyIGJpdHRlLi4udWViZXJkZW5rIGRhbm4gZG9jaApub2NobWFsIGRlbiBkZW4gVmVybHVzdCBkZXIgTFAgYmVpIEZlaGxlcm4uLi4uZGllIHNpbmQgbmFlbWxpY2ggemllbWxpY2gKaG9jaC4uLmhtLi4uZWlucyB2ZXJzdGVoIGljaCBuaWNodC4uLmhhYiBhbiBlaW5lciBTdGVsbGUgZXJzdCAxNzAgTFAgdW5kIGt1cnoKZGFyYXVmICh3YXIgc28gYmxvZWQgdW5kIGhhYiBkZW4gZ2xlaWNoZW4gRmVobGVyIDJ4IGdlbWFjaHQpIG51ciBub2NoIDMwIExQCnZlcmxvcmVuIS4uLi4KCiAgICBlaW4gZXR3YXMgdmVyd2lycnRlciBhYmVyIHNpY2ggbmV1ZW4gSGVyYXVzZm9yZGVydW5nZW4gc3RlbGxlbmRlciBGbGludAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLYW1wZiBkZXIgTXVzdGVybG9lc3VuZyA6LSkgKER1cmlhbiwgMTMuIFNlcCAxOTk0LCAxMTo1NDoxNik6CkRlciBBYnp1ZyBkZXIgTGViZW5zcHVua3RlIHJpY2h0ZXQgc2ljaCBuYWNoIGRlbSwgd2FzIER1IGFuIExQJ3MKYmVzaXR6dC4gQWxzbyBrYW5uIGVzIHNlaW4sIGRhInMgRHUgbnVyIGVpbmVuLCBvZGVyIGFsbGUgdmVybGllcnN0LiBBdWYKZGllc2UgV2Vpc2Ugc2luZCBkaWUgRmFsbGVuIHNjaHdlcmVyIGVpbnp1c2NoYWV0emVuLCBhYmVyIHNpZSBzaW5kIHVuZApibGVpYmVuIFRvZGVzZmFsbGVuLCB1bmQgZGllIFdhaHJzY2hlaW5saWNoa2VpdCB6dSBzdGVyYmVuIGlzdCBuaWNodApnbGVpY2ggMSBzb25kZXJuIEVSSEVCTElDSCBuaWVkcmlnZXIgKG5laW4sIGVnYWwgd2lldmllbCBMUCBEdSBoYXN0LCBzaWUKaXN0IGF1Y2ggbmljaHQgMCkuIEljaCBkZW5rZSwgZGFtaXQga2FubiBqZWRlciBsZWJlbiwgb2RlciBzb2xsIGljaCBFdWNoCmVpbiBzZWhyIHNlaHIgc3RhcmtlcyBNb25zdGVyIGFscyBTdHJhZmUgcHJhZXNlbnRpZXJlbi4gRGFubiB3YWVyZSBkaWUKUXVlc3QgbnVyIG5vY2ggbWl0IExldmVsIDE5IGxvZXNiYXIsIG9kZXIgbWl0IExldmVsIDE5IGtlaW4gUHJvYmxlbQptZWhyIC4uLiBmImFuZGUgaWNoIGxhbmd3ZWlsaWchLgoKLSBEdXJpYW4KClAuUy46IEVzIGxlYmUgTGF0ZXggLi4uIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIEthbXBmIGdlaHQgd2VpdGVyISAoRHVyaWFuLCAyMS4gU2VwIDE5OTQsIDEyOjU4OjUyKToKSGFsbG8hCkRlciBLYW1wZiBnZWdlbiBkaWUgTXVzdGVybG9lc3VuZyBnZWh0IHdlaXRlci4gSWNoIHJhdGUgRXVjaCwgamV0enQgYXVjaApiZWkgZGVuIExldWNodGVuIGluIGRlciBzdWVkbGljaGVuIFB5cmFtaWRlbiBnZW5hdWVyIGhpbnp1c2NoYXVlbiEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdWVkbGljaGUgUHlyYW1pZGUgdm9ydWViZXJnZWhlbmQgZ2VzY2hsb3NzZW4hIChEdXJpYW4sIDI2LiBTZXAgMTk5NCwgMDk6MTE6NTEpOgpIYWxsbyB6dXNhbW1lbiEKCkVzIHR1dCBtaXIgbGVpZCwgYWJlciBkaWUgc3VlZGxpY2hlIFB5cmFtaWRlIG11c3MgZXJzdG1hbCBnZXNjaGxvc3NlbgpibGVpYmVuLiBBYmVyIGRhcyBpc3Qga2VpbiBCdWcgdW5kIGVzIGlzdCBhdWNoIG5pY2h0IG1laW5lIFNjaHVsZC4gRXMKZmVobHQgZWluZmFjaCBlaW4gUmF1bSwgdW5kIGljaCBoYWJlIGtlaW5lIEFobnVuZyB3ZXIgZGVuIHdlZ2dlbm9tbWVuIGhhdC4KRC5oLiBpY2ggbXVzcyBqZXR6dCBkaWVzZW4gUmF1bSBzdWNoZW4gb2RlciBuZXVzY2hyZWliZW4gKmdydW1tZWwqLgpBbHNvLCBuaXMgZnVlciB1bmd1dCAuLi4KCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQeXJhbWlkZSB3aWVkZXIgYXVmIC4uLiAoRHVyaWFuLCAyNi4gU2VwIDE5OTQsIDA5OjQxOjQ2KToKSGkhCgpSYXVtIGdlZnVuZGVuLCBQeXJhbWlkZSB3aWVkZXIgYXVmIC4uLgoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNhZW5nZXImS2VybWV0IChEYW5jZXIsICAyLiBEZXogMTk5NCwgMTY6MDQ6NTcpOgpIYWxsbywKCiBoZXV0ZSBzaW5kIFNhZW5nZXIgdW5kIEtlcm1ldCB6dSB1bnMgV3Vlc3Rlbm1hZ2llcm4gZ2VzdG9zc2VuCnVuZCBoYWJlbiBzaWNoIGVudHNjaGllZGVuLCBkYXNzIGJlaSB1bnMgZGFzIEZsZWNrY2hlbiBMYW5kIGlzdCwKYXVmIGRlbSBzaWUgc2ljaCBnZXJuZSBuaWVkZXJsYXNzZW4gd29sbGVuICh3YXMgYmVpIGRlbiBnYW56ZW4Ka3VzY2hlbGlnZW4gU2FuZGR1ZW5lbiBhdWYgZGVuZW4gbWFuIHNpY2ggc2Nob2VuIGdlbnVlc3NsaWNoCmJyYXRlbiBsYXNzZW4ga2FubiBqYSBhdWNoIGtlaW4gV3VuZGVyIGlzdCA7KSApLgoKIEltIE5hbWVuIGFsbGVyIFd1ZXN0ZW5tYWdpZXIgd3VlbnNjaGUgaWNoIGlobmVuIHZpZWwgRXJmb2xnIGJlaQppaHJlbSAoc2ljaCBwcmltYSBhbmhvZXJlbmRlbikgVm9yaGFiZW4gdW5kIGhlaXNzZSBzaWUgaGVyemxpY2gKd2lsbGtvbW1lbiBpbSBLcmVpcyBkZXIgSG9semZhZWxsZXIgOykKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtsZWluZXIgU2Nob2VuaGVpdHNmZWhsZXIga29ycmlnaWVydCAoRHVyaWFuLCAgNi4gRGV6IDE5OTQsIDE3OjEwOjI0KToKSGFsbG8gTGV1dGUhCgpXaXIgbWlyIGhldXRlIHp1bSBlcnN0ZW5tYWwgenUgT2hyZW4gZ2Vrb21tZW4gaXN0LCBnYWIgZXMgaWhuIGRlcgpCZXNjaHJlaWJ1bmcgZGVzIERyZWhzcGllbHMgaW4gZGVyIFNwaWVscHlyYW1pZGUgZWluaWdlIGVyaGVibGljaGUKU2Nod2llcmlna2VpdGVuLCB3ZWlsIFRhYnVsYXRvcmVuIGJlaSBtYW5jaGVuIFNwaWVsZXJuIGFuZGVycyBhdXNnZXdlcnRldAp3dXJkZW4uIERpZXMgd3Vzc3RlIGljaCBuaWNodCB1bmQgZnVlaHJ0ZSBkZXNoYWxiIGxlaWRlciBiZWkgbWFuY2hlbiB6dQpzZWhyIHVuc2Nob2VuZW4gdW5kIHZvZWxsaWcgdmVyd2lycmVuZGVuIEF1c2dhYmVuLiBEYXMgdHV0IG1pciBsZWlkLCBlcwppc3QgZ2VhZW5kZXJ0IQoKLSBEdXJpYW4KZGVyIGVpbnppZyB3YWhyIHVuZCBmdWVyIGFsbGVzIHZlcmFudHdvcnRsaWNoZSAuLi4gWndlaXRpZSB2b24gRGFuY2VyIC4uLgoKb2RlciBzbwoKOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZToga2xlaW5lciBTY2hvZW5oZWl0c2ZlaGxlciBrb3JyaWdpZXJ0IChEYW5jZXIsICA2LiBEZXogMTk5NCwgMjI6NDM6MjYpOgojISBybj1EdXJpYW4gcnQ9Nzg2NzMwMjI0ClVhaGhoaGghISEKCkR1cmlhbiwgRnJldW5kLCBDaGVmLCBLb2xsZWdlISEKCk5pY2h0IGF1Y2ggbm9jaCBEVSEhISA6LSkpKQoKRGFuY2VyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBrbGVpbmVyIFNjaG9lbmhlaXRzZmVobGVyIGtvcnJpZ2llcnQgKER1cmlhbiwgIDcuIERleiAxOTk0LCAwOTo0OTo0Myk6CiMhIHJuPURhbmNlciBydD03ODY3NTAyMDYKTW9tZW50LCB3aWUgZ2luZyBkYXMgZG9jaCBnbGVpY2ggLi4uCgphZWhtLCBzZWt1bmRlLCBoYWIncyBnbGVpY2ggLi4uCgphZWggLi4uCgphY2hqYSAuLi4KCklST05JRSBPTgoKT2ggRHUgbWVpbiBFcnN0aWUsIHdhcyBoYWJlIGljaCBkZW5uIEJvZXNlcyB2b2xsYnJhY2h0LCBkYXNzIER1IG1pciBkZXJhcnQKc2NoZWx0ZW4gbXVzc3QhIE51ciwgd2VpbCBEdSBkaWUgbmV1ZXN0ZSBCVUctTWVsZHVuZyBkZXIgUHlyYW1pZGUgZGllc21hbApOSUNIVCBiZWtvbW1lbiBoYXN0Pz8/IE9rYXksIGJlaW0gbmFlY2hzdGVuIG1hbCBkYXJmc3QgRHUgd2llZGVyIHJhbiEhCgpJUk9OSUUgT0ZGCgo6LSkKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaZWx0ZSBpbiBkZXIgV3Vlc3RlPyAoSGFra2lra3QsICA5LiBEZXogMTk5NCwgMTY6NDg6MTcpOgpFaW5pZ2UgZWluc2FtZSBXdWVzdGVud2FuZGVyZXIgYmVyaWNodGVuIHZvbiBlaW5lbSBMYWdlciBtaXQgbWVya3d1ZXJkaWdlbgpFaW53b2huZXJuLiBFcyBzb2xsIHNpY2ggdW0gZGllIHZlcnNjaG9sbGVuZSBSYXNzZSBkZXIgTWFyYXRhc2VuIGhhbmRlbG4uCkFuZ2VibGljaCBzb2xsIGRvcnQgYXVjaCBkYXMgc2FnZW51bXdvYmVuZSBXdWVzdGVuc2Nod2VydCB6dSBlcmhhbHRlbiBzZWluLgpPYiBkYXMgc28gc3RpbW10PwoKSGFra2lra3QgKGtlaW4gWndlaXRpLCB3ZWRlciBEYW5jZXIgbm9jaCBEdXJpYW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogWmVsdGUgaW4gZGVyIFd1ZXN0ZT8gKFF1YXNpbW9kbywgMTIuIERleiAxOTk0LCAxNjozMTo0MSk6CiMhIHJuPUhha2tpa2t0IHJ0PTc4Njk4ODA5NwoKV2llIGpldHp0IGVjaHQ/IEVzIGdpYnQgTWF0cmF0emVuIGluIGRlciBXdWVzdGU/IExlYmVuZGU/CkFiZXIgZGllIGhlaXNzZW4gZG9jaCBuaWNodCBaZW0sIG9kZXI/CgpmcmFnZW5kLApRdWFzaW1vZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIGt1cnp6ZWl0aWcgZ2VzY2hsb3NzZW4gKER1cmlhbiwgMTUuIERleiAxOTk0LCAxMjo0NDoyNSk6CkhpIQoKRGllIEFyZW5hIGJsZWlidCBmdWVyIGt1cnplIFplaXQgZ2VzY2hsb3NzZW4uIE5vdHdlbmRpZ2UgV2FydHVuZ3NhcmJlaXRlbiEKCk1pdCBkZXIgQml0dGUgdW0gVmVyc3RhZW5kbmlzCgpJbSBOYW1lbiBkZXIgTUdBQkcKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJlbmEga3VyenplaXRpZyBnZXNjaGxvc3NlbiAoQXNtb2RpcywgMTUuIERleiAxOTk0LCAxMzo1OTowMSk6CiMhIHJuPUR1cmlhbiBydD03ODc0OTE4NjUKQWVoLCBtZWludGVzdCBkdSBkZWluZSBTY2hhdHRlbmFyZW5hID8gU2NoYWRlICEhIQoKICAgICAgICAgICAgICAgIENpYW8sIEFzbW9kaXMgKGRlciBkZW4gV2V0dHBhbGFzdCBndXQgZmluZGV0KQoKUC5TLjogQWNoIGphOiAgIDopKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIHdpZWRlciBvZmZlbiEgKER1cmlhbiwgMTUuIERleiAxOTk0LCAxNjo1Mjo0Nyk6CkhhbGxvIExldXRlIQoKRGllIFdhcnR1bmdzYXJiZWl0ZW4gc2luZCBhYmdlc2NobG9zc2VuLiBEaWUgQXJlbmEgaXN0IHdpZWRlciBlcm9lZmZuZXQKdW5kIGVyd2FydGV0IGZyZXVkaWdlIEthZW1wZmVyIHVuZCBLYWVtcGZlcmlubmVuIQoKaW0gTmFtZW4gZGVyIE1vcmdlbkdyYXVlbkFyZW5hQmV0cmVpYmVyR2VzZWxsc2NoYWZ0CgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFyZW5hIHdpZWRlciBvZmZlbiEgKEdyaW1tYm9ybiwgMTUuIERleiAxOTk0LCAxNzo0NDo0MSk6CiMhIHJuPUR1cmlhbiBydD03ODc1MDY3NjcKCk1pc3QsIFRlcm1pbiB2ZXJwYXNzdC4gRGFzIHdhciBkb2NoIERJRSBHZWxlZ2VuaGVpdCB6dW0gcGxheWVya2lsbGluZywKZWluZmFjaCB1bnNjaHVsZGlnIGRyYXVmIGhpbndlaXNlbiBkYXNzIGRpZSBBcmVuYSBqYSBsZWlkZXIgZ2VzY2hsb3NzZW4gd2FyLi4uCgpEaWUgYmVzdGVuIENoYW5jZW4gaW0gTGViZW4gdmVycGFzc2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcmVuYSB3aWVkZXIgb2ZmZW4hIChDYXJhZGhyYXMsIDE2LiBEZXogMTk5NCwgMTI6MTA6MjYpOgojISBybj1HcmltbWJvcm4gcnQ9Nzg3NTA5ODgxClVwcHMsIHVuZCBpY2ggaGFiIHZlcmdlc3NlbiwgRHVyaWFuIGRlbiB6d2VpdGVuIEJ1ZyB6dSB6ZWlnZW4gOikpKQpOYSBqYSwga29tbXQgbm9jaCwgZGFubiB3aXJkIGRpZSBBcmVuYSB2aWVsbGVpY2h0IHdpZWRlciBnZXNjaGxvc3Nlbi4KCiBBbXVlc2llcnQgICAgICAgICBDYXJhZGhyYXMgZGVyIGV3aWdlIFByb3BoZXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkluc2VsIGFtIFd1ZXN0ZW5zdHJhbmQhIChDYXR3ZWF6bGUsIDExLiBKYW4gMTk5NSwgMTA6MzE6MjApOgpIaSEKSWNoIGhhYiBtaXIgbWFsIGVpbiBiaXNzY2hlbiBNdWVoZSBnZWdlYmVuIHVuZCBlaW4gcGFhciBtYWdpc2NoZSBLcmFlZnRlCmdlc2FtbWVsdCBpbiBkZW4gbGV0enRlbiBUYWdlbi4gVGphLCBudW4gd2VyZCBpY2ggc2llIG1hbCB2ZXJicmF1Y2hlbiwKaWNoIHdlcmRlIG1hbCBlaW5lIGtsZWluZSBJbnNlbCBhdXMgZGVtIFdhc3NlciBoZWJlbiwgdW5kIHp3YXIgZGlyZWt0CmFtIFd1ZXN0ZW5zdHJhbmQuIERpZXNlIEluc2VsIHdpcmQgdm9yIGFsbGVtIGZ1ZXIgU2VoZXIgaW50ZXJlc3NhbnQgc2Vpbi4KRGVyIGVyc3RlIGFuc3RyZW5nZW5kc3RlIFRlaWwsIGRhcyBIZWJlbiwgaXN0IGdlc2NoYWZmdCwgamV0enQgbXVzcyBpY2gKZGllIEluc2VsIG5vY2ggc3RhYmlsaXNpZXJlbiwgaWhyIHdvbGx0IGphIHNjaGxpZXNzbGljaCBuaWNodCwgZGFzIHNpZQp1bnRlciBFdXJlbiBGdWVzc2VuIHp1c2FtbWVuYnJpY2h0LCBvZGVyPyA6LSkKQWxzbyBub2NoIGVpbiBwYWFyIFRhZ2UgR2VkdWxkLCBkYW5uIGtvZW5udCBpaHIgc2llIGJldHJldGVuLgpZb3VycyB0cnVseSwKICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBJbnNlbCBpc3QgZmVydGlnISAoQ2F0d2VhemxlLCAxMS4gSmFuIDE5OTUsIDE5OjU1OjU1KToKU29vb28uLi4KSW4gZWluZW0gQW5mYWxsIHZvbiBBcmJlaXRzd3V0IGhhYiBpY2ggZGllIEluc2VsIGpldHp0IGZlcnRpZ2dlc3RlbGx0LgpFbnRzcHJlY2hlbmQgdmllbGUgYnVncyB3ZXJkZW4gZHJpbiBzZWluIDotKSkKQUxzbywgYnVncyBhbiBtaWNoLCBmbGFtZXMgbmFjaCAvZGV2L251bGwgLi4uCllvdXJzIHRydWx5LAogICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvIGVpbmUgSW5zZWwgaXN0IHNjaG9uIGVpbmUgVHBsbGUgU2FjaGUuIChIYXdrLCAxMi4gSmFuIDE5OTUsIDAwOjM2OjA0KToKSGksCmRpZSBJZGVlIGZ1ZXIgZGllIEluc2VsLCBpbiBkZXIgbWFuIHNlaW4gQmFyZXMgJ2d1dCBhbmxlZ2VuJyBrYW5uLCBmaW5kZSBpY2gKd2lya2xpY2ggZ2VuaWFsLiBJY2ggZGVua2UsIGRhcyB3aXJkIGVpbmlnZSBhbHRlIERpc2t1c3Npb25lbiBhYnJ1cHQKYmVlbmRlbi4gU3VwZXIgU2FjaGUuCgpIQVdLLCBkZXIgbGVpZGVyIGdlcmFkZSBhdWYgZWluZW4gQXVzYmF1IHNlaW5lcyBTZWhlcmhhdXNlcyBzcGFydC4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcmVuYSBnZXNjaGxvc3NlbiEgKER1cmlhbiwgMTcuIEphbiAxOTk1LCAxNjo0NDowMyk6CkhhbGxvIExldXRlIQoKRW5kbGljaCwgZW5kbGljaCBoYWJlIGljaCBpaG4sIGRlbiBCdWcuIEVzIGdhYiBpbiBsZXR6dGVyIFplaXQgYWIgdW5kCmFuIGVpbiB3ZW5pZyBQcm9ibGVtZSBtaXQgZGVyIEFyZW5hLCBkZXIgbnVuIGVuZGxpY2ggYmVob2JlbiB3aXJkLiBEYSBpY2gKbGVpZGVyIG5pY2h0IHNvIHdhaG5zaW5uaWcgdmllbCBaZWl0IGhhYmUsIGthbm4gZXMgZHVyY2hhdXMgZWluIGJpc3NjaGVuCmRhdWVybiwgYmlzIGljaCBkZW4gRmVobGVyIGF1c2dlYmF1dCBoYWJlLCBkYSBkaWUgQXJlbmEga29tcGxldHQgcmVub3ZpZXJ0CndlcmRlbiBtdXNzLgoKRGEgZGllcyBhYmVyIGF1Y2ggaW4gRXVyZW0gSW50ZXJlc3NlIGdlc2NoaWVodCwga2FubiBpY2ggd29obCBhdWYgRXVlcgpWZXJzdGFlbmRuaXMgemFlaGxlbiEKCkltIE5hbWVuIGRlciBNR0FCRwoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWVyIFd1ZXN0ZXJpY2ggKERhbmNlciwgMjcuIEphbiAxOTk1LCAyMDoxNjowNik6CkxpZWJlIE1pdG11ZGRlciwKCiBhbHMgRHVyaWFuLCBDYXR3ZWF6bGUgdW5kIGljaCBsZXR6dGVucyBzbyBkdXJjaCBkaWUgV3Vlc3RlIHNwYXppZXJ0ZW4sIHVtCnVucyBlaW5lIGdlbXVldGxpY2hlIER1ZW5lIHp1bSBBdXNydWhlbiBhdXN6dXN1Y2hlbiwga2FtIGF1ZiBlaW5tYWwgZWluCkp1bmdtYWdpZXIgZGVuIEJlcmcgcnVudGVyZ2VrdWxsZXJ0IHVuZCB2ZXJrdWVuZGV0ZSB1bnMgbWl0IGVpbmVtIFN0YXBlbApSb2xsZW4gdW50ZXIgZGVtIEFybSBzZWluZQpCYXVwbGFlbmUuCiAgRGEgd2lyIEp1bmdtYWdpZXJuIChhZWhtLCBpbSBHZWdlbnNhdHogenVyIGtvbnNlcnZhdGl2ZW4gV2FsZHJlZ2lvbiA7KSApCmltbWVyIGdlcm5lIFBsYXR6IHVuZCBNb2VnbGljaGtlaXQgenVtIEF1ZmJhdSBpaHJlciBQcm9qZWt0ZSBnZXdhZWhyZW4sIHd1cmRlCkhhcnJ5IGluIHVuc2VyZW0gS3JlaXMgdm9uIFN1ZWRsYWVuZGVybiBhdWZnZW5vbW1lbi4gV2lyIHd1ZW5zY2hlbiBpaG0gQWxsZXMKR3V0ZSB1bmQgdmllbCBFcmZvbGcgYmVpCnNlaW5lbiBQbGFudW5nZW4uCgpTYW11bXdpbGRlIEtudWRkZWxzCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVlciBXdWVzdGVyaWNoIElJIC0gSmVuc2VpdHMgZGVyIEh1ZWdlbGdyYWViZXIgKERhbmNlciwgMjcuIEphbiAxOTk1LCAyMToyOToyNCk6Ckd1Z2d1ZyA6LSkKCkljaCBkYXJmIGhpZXJtaXQgZnJvZWhsaWNoIHZlcmt1ZW5kZW4sIGRhc3Mgc2ljaCBkZXIgdmllbHZlcnNwcmVjaGVuZGUKSnVuZ21hZ2llciBHdW5kdXIgZWJlbmZhbGxzIGRlciBXdWVzdGUgYW5nZXNjaGxvc3NlbiBoYXQuCkhldXRlIG5hY2ggU29ubmVudW50ZXJnYW5nIGhhYmVuIHdpciBkYXMgUml0dWFsIHZvbGx6b2dlbi4KR3VuZHVyIGhhdCBuaWNodCBudXIgYmVyZWl0cyBrb25rcmV0ZSBQbGFlbmUsIHNvbmRlcm4gZm9ybXQgYmVyZWl0cyBhdXMKV2VsdGVuc3RhdWIgdW5kIE1hZ2llZnVua2VuIHNlaW5lIEtyZWF0aW9uLCB2b24gZGVyIElociBub2NoIGZydWVoIGdlbnVnCmhvZXJlbiB3ZXJkZXQgOi0pCgpJY2ggaGVpc3NlIEd1bmR1ciBpbSBOYW1lbiBhbGxlciBXdWVzdGVubWFnaWVyIGhlcnpsaWNoIHdpbGxrb21tZW4gdW5kCnd1ZW5zY2hlIGlobSBlaW4gZ3V0ZXMgR2VsaW5nZW4hCgpTYW5kdGlnZXJzY2hudXJyaWcsCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcmVuYSB3aWVkZXIgb2ZmZW4gLi4uIChEdXJpYW4sICAyLiBGZWIgMTk5NSwgMTk6MDQ6NTMpOgpIYWxsbyBMZXV0ZSEKCkV0d2FzIHVuc3Bla3Rha3VsYWVyIHdpZSBkYXMgZ2FuemUgYWJnZWh0LCBhYmVyIGRpZSBBcmVuYSBpc3Qgd2llZGVyIG9mZmVuLgpMZWlkZXIgaGFiZSBpY2ggYmlzbGFuZyBuaWNodCBkaWUgWmVpdCBnZWZ1bmRlbiwgYWxsZSBBZW5kZXJ1bmdlbiwgZGllCmljaCB2b3IgaGF0dGUgdW5kIGltbWVyIG5vY2ggaGFiZSBiZXJlaXRzIGluIGRpZSBUYXQgdW16dXNldHplbi4gRG9jaApkYXMgYWVuZGVydCBzaWNoIGhvZmZlbnRsaWNoIGJhbGQsIHNvd2llIGljaCB3aWVkZXIgbWVociBaZWl0IGhhYmUhCldhcyBoYXQgc2ljaCBkZW5uIGdlYWVuZGVydD8gVGphLCBmdWVyIEV1Y2ggU3BpZWxlciBlaWdlbnRsaWNoIG51ciBzb3ZpZWwsCmRhc3MgamV0enQgZGVyIFNjaGllZHNyaWNodGVyIGFscyBlY2h0ZSBQZXJzb24gRXVjaCBiZWltIEthbXBmIGJlb2JhY2h0ZXQuCkFuc29uc3RlbiBoYXQgc2ljaCBuaWNodHMgZ2VhZW5kZXJ0LiBJaHIga2FlbXBmdCBuYWNoIHdpZSB2b3IgZ2VnZW4KYW5kZXJlIFNwaWVsZXIgdW5kIEdsYWRpYXRvcmVuIHVuZCBtdWVzc3QgYXVjaCBuYWNoIHdpZSB2b3IgZGllIEthZW1wZmUKaW4gZGVyIEFubWVsZHVuZyBhbm1lbGRlbiEKRXMgaGF0IHNpY2ggZXR3YXMgYW4gZGVuICdJbnRlcm5hbHMnIGdlYWVuZGVydCwgc3ByaWNoIGRlciBTY2hpZWRzcmljaHRlcgp3aXJkIGpldHp0IGhvZmZlbnRsaWNoIGF1Y2ggbm9jaCBkaWUgbGV0enRlbiBCdWdzLCBkaWUgaW1tZXIgbm9jaCBpbSBEZXRhaWwKc3RlY2t0ZW4sIHp1IHZlcm1laWRlbi4gU29sbHRlIGVzIGRlbm5vY2ggU2Nod2llcmlna2VpdGVuOiBzb2ZvcnQgTWFpbAphbiBtaWNoISBCaXR0ZSBtaXQga29ycmVrdGVyIEJlc2NocmVpYnVuZywgd2FzIGdlbmF1IHBhc3NpZXJ0IGlzdC4gRWlnZW50bGljaApoYWJlIGljaCBqYSBhbGxlcyBnZXRlc3RldC4gQWJlciB3ZW5uIGljaCBzYWdlICdhbGxlcycsIGRhbm4gbXVzcyBkYXMgbm9jaApsYW5nZSBuY2lodCBoZWlzc2VuLCBkYXNzIGlociBuaWNodCBpbW1lciBub2NoIGF1ZiBMdWVja2VuIHN0b3NzdC4KV2VpdGVyaGluIGhhYmUgaWNoIGpldHp0IGVpbmUgdW1mYW5ncmVpY2hlIFN0YXRpc3Rpa2Z1bmt0aW9uIGVpbmdlYmF1dCwKZGllIG1hbiB6dXIgWmVpdCBhbGxlcmRpbmdzIG5vY2ggbmljaHQgZWluc2VoZW4ga2Fubi4gRXMgd2VyZGVuIGFiZXIKYmVyZWl0cyBhbGxlIGpldHppZ2VuIEthZW1wZmUgZmVzdGdlaGFsdGVuISBTcGFldGVyIHdpcmQgbWFuIGRpZSBTdGF0aXN0aWtlbgooaWNoIGhvZmZlLCBpY2gga2FubiBkaWUgYWx0ZW4sIHNwcmljaCBkaWUgYmlzaGVyIGdlbGF1ZmVuZGVuIG1pdCBlaW5iYXVlbikKaW4gZGVyIEdhbGVyaWUgZGVyIEFyZW5hIGVpbnNlaGVuIGtvZW5uZW4uCkRvY2ggZGFzIHdpcmQgbm9jaCBkYXVlcm4gLi4uCgpCaXMgZGFoaW4gYWxsZSBHdXRlIHd1ZW5zY2h0IGltIE5hbWVuIGRlciBNR0FCRwoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFrdHVlbGxlIFNjaG5hcHN6YWhsZW5oaXRwYXJhZGUgKEhha2tpa2t0LCAyMi4gRmViIDE5OTUsIDE2OjI2OjU1KToKSGkgV3Vlc3RlbmZ1ZWNoc2UsCgppY2ggaGFiZSBtaXIgbWFsIGRpZSBNdWVoZSBnZW1hY2h0IGVpbmUga2xlaW5lIFJhbmdsaXN0ZSBkZXIgU3BpZWxlcgptaXQgZGVuIGhvZWNoc3RlbiBtaXIgYmVrYW5udGVuIEVQLVNjaG5hcHN6YWhsZW4gYXVmenVzdGVsbGVuLgpJbnNnZXNhbXQgZ2FiIGVzIHZvbSA5LiBEZXplbWJlciAxOTk0IGJpcyB6dW0gMjIuIEZlYnJ1YXIgMTk5NSAKNDggTGV1dGUgZGllIHNpY2ggbWl0IGVpbmVyIFNjaG5hcHN6YWhsIGhpZXIgaW4gZGVyIFd1ZXN0ZSBnZW1lbGRldCBoYWJlbi4gCihJY2ggaG9mZmUsIGljaCBoYWJlIGFsbGUgVGVzdHNwaWVsZXIgdW5kIE1hZ2llciByYXVzZ2VzdWNodCkKCkhpZXIgc2luZCBkaWUgU3BpZWxlciBtaXQgZGVuIDEwIGj2Y2hzdGVuIFNjaG5hcHN6YWhsZW4uCgoxLglXZWQgSmFuIDE4IDIxOjExOjM3IDE5OTUgIFRvZXRlciBoYXR0ZSAJNjY2NjY2NjYgRVAKMi4JV2VkIERlYyAxNCAyMjowODo0NCAxOTk0ICBUb2V0ZXIgaGF0dGUgCTU1NTU1NTU1IEVQCjMuCUZyaSBGZWIgMTcgMjE6MzA6NTkgMTk5NSAgQW5ha2luIGhhdHRlICAgODg4ODg4OCBFUAo0LglUaHUgRmViICA5IDA5OjU0OjUxIDE5OTUgIEFuYWtpbiBoYXR0ZSAgIDc3Nzc3NzcgRVAKNS4JU3VuIEZlYiAxMiAwNTo0NDo0MyAxOTk1ICBXdXIgaGF0dGUgICAgICA2NjY2NjY2IEVQCglTdW4gRmViICA1IDAyOjM4OjU2IDE5OTUgIEFuYWtpbiBoYXR0ZSAgIDY2NjY2NjYgRVAKNi4JTW9uIEphbiAzMCAxMDozNzozNiAxOTk1ICBBbmFraW4gaGF0dGUgICA1NTU1NTU1IEVQCglUaHUgRmViIDE2IDEyOjU2OjEyIDE5OTUgIEJlcm5oYXJkIGhhdHRlIDU1NTU1NTUgRVAKNy4JVGh1IERlYyAyMiAyMDo0NjoyOSAxOTk0ICBLZXJtaXQgaGF0dGUgICA0NDQ0NDQ0IEVQCglUdWUgRGVjIDI3IDIyOjM5OjEwIDE5OTQgIExvY3VsdXMgaGF0dGUgIDQ0NDQ0NDQgRVAKCUZyaSBGZWIgIDMgMjE6MDQ6NDUgMTk5NSAgQmVybmhhcmQgaGF0dGUgNDQ0NDQ0NCBFUAoJTW9uIEZlYiAgNiAxNzoyODoxMSAxOTk1ICBCZXJuaGFyZCBoYXR0ZSA0NDQ0NDQ0IEVQCglNb24gSmFuIDIzIDExOjU5OjU1IDE5OTUgIEFuYWtpbiBoYXR0ZSAgIDQ0NDQ0NDQgRVAKCVR1ZSBKYW4gMjQgMTQ6MjM6NDkgMTk5NSAgUmF5IGhhdHRlICAgICAgNDQ0NDQ0NCBFUAo4LglUdWUgRGVjIDIwIDEyOjU4OjQ1IDE5OTQgIFJheSBoYXR0ZSAgICAgIDMzMzMzMzMgRVAKCVR1ZSBKYW4gIDMgMDY6MDk6NTggMTk5NSAgR3VuZHVyIGhhdHRlICAgMzMzMzMzMyBFUAo5LglNb24gSmFuIDMwIDE4OjM3OjM0IDE5OTUgIER1cmluIGhhdHRlICAgIDIyMjIyMjIgRVAKCUZyaSBGZWIgIDMgMjE6MDQ6MTQgMTk5NSAgRHVyaW4gaGF0dGUgICAgMjIyMjIyMiBFUAoJVHVlIEZlYiAgNyAxMjo1Nzo0OCAxOTk1ICBEdXJpbiBoYXR0ZSAgICAyMjIyMjIyIEVQCglXZWQgRmViICA4IDE0OjM2OjIwIDE5OTUgIFByaWFtb3MgaGF0dGUgIDIyMjIyMjIgRVAKCVdlZCBGZWIgIDggMjE6NDY6MDYgMTk5NSAgTWlubmkgaGF0dGUgICAgMjIyMjIyMiBFUAoxMC4JVHVlIEphbiAxMCAxNTozMDo0MSAxOTk1ICBNaW5uaSBoYXR0ZSAgICAxMTExMTExIEVQCglXZWQgSmFuIDI1IDE1OjQ0OjU5IDE5OTUgIFByaWFtb3MgaGF0dGUgIDExMTExMTEgRVAKCVdlZCBKYW4gMjUgMTU6NTg6MDEgMTk5NSAgUHJpYW1vcyBoYXR0ZSAgMTExMTExMSBFUAoKbGV0enRlKHIpOiAKCUZyaSBEZWMgIDkgMTc6MTA6MzQgMTk5NCAgTXVkbGVyIGhhdHRlIAkgICAgICAxMSBFUAoJRnJpIERlYyAxNiAwMzozMDo1MiAxOTk0ICBTY2huYXBzemFobCBoYXR0ZSAgIDExIEVQCgpBbnphaGwgZGVyIFBsYXppZXJ1bmdlbiBpbiBkZXIgR2VzYW10bGlzdGU6CglBbmFraW4gCQk1eAoJQmVyaG5oYXJkIAkzeAoJRHVyaW4JCTN4CiAgICAgICAgdmllbGUgd2VpdGVyIFNwaWVsZXIgbWl0IDJ4IHVuZCAxeAoKVG9ldGVyIGlzdCBkYW1pdCBlcnN0IG1hbCBkaWUgYmVzdGUgdW5kIEFuYWtpbiBkaWUgZmxlaXNzaWdzdGUgU2NobmFwc25hc2UgCihhZWggU2NobmFwc3phaGxzYW1tbGVyKSAuLi4KCkJpcyBkZW5uZSwgZXVyZSBIYWtraWtrdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BpZWxwbGF0eiAoQ2F0d2VhemxlLCAyMy4gRmViIDE5OTUsIDIwOjUzOjM3KToKSGkhCk5hY2hkZW0gamEgbnVuIGRvY2ggbmljaHQgc292aWVsIGF1ZiBkZW0gU3BpZWxwbGF0eiBsb3MgaXN0IHVuZCBpY2ggYmlzaGVyCmF1Y2ggbnVyIEJlc2Nod2VyZGVuIHVlYmVyIGRpZSBQcmVpc2UgYmVrb21tZW4gaGFiZSwgaGFiIGljaCBlYmVuIGRpZXNlCmVyaGVibGNpaCByZWR1emllcnQgLi4uCllvdXJzIHRydWx5LAogICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmFwcm9ibGVtZSAoRHVyaWFuLCAxMS4gTWFpIDE5OTUsIDE0OjA4OjIxKToKSGFsbG8gTGV1dGUhCgpnZXJhZGUgaGF0dGUgaWNoIGVpbiBrbGVpbmVzIFByb2JsZW0gaW4gZGVyIEFyZW5hLiBNYW4ga29ubnRlCmRpZSBHbGFkaWF0b3JlbiBoZXJhdXNmb3JkZXJuIGF1Y2ggd2VubiBlaW4gRHVlbGwgbGllZiAqc2NoYXVkZXIqLiBEYXMgc29sbHRlCmpldHp0IGFiZXIgd2llZGVyIHR1bi4gV2VubiBlcyB0cm90emRlbSBpcmdlbmR3YW5uIGlyZ2VuZHdpZSBtYWwgenUgUHJvYmxlbWVuCmtvbW10OiBTT0ZPUlQgTUFJTCBBTiBNSUNIISEhCgpTb3dlaXQgZGllcyAuLi4KCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbnNlciBsaWViZXIga2xlaW5lciBCb3RlIC4uLiAoRHVyaWFuLCAxOC4gTWFpIDE5OTUsIDEwOjU4OjI5KToKSGFsbG8gTGV1dGUhCgpXYXMgdHV0IG1hbiBuaWNodCBhbGxlcyBmdWVyIHNlaW5lIEt1bmRzY2hhZnQgLi4uCgpJbiBsZXR6dGVyIFplaXQgaGFldWZ0ZW4gc2ljaCAuLi4gZXR3YXMgLi4uIGRpZSBCZXNjaHdlcmRlbiB1ZWJlciB1bnNlcmVuCmZyZXVuZGxpY2hlbiBNaXRhcmJlaXRlciwgZGVuIEFyZW5hLUJvdGVuLiBFaW4gcGFhciB3ZW5pZ2UgKGFsbGU/PykKZm9yZGVydGVuLCBkYXNzIG1hbiBkaWVzZW4gQm90ZW4gZG9jaCBiaXR0ZSBpZ25vcmllcmVuIGtvZW5uZW4gc29sbGUuCk51bmphLCBkZXIgV3Vuc2NoIHVuc2VyZXIgS3VuZHNjaGFmdCB3YXIgdW5zIHNjaG9uIGltbWVyIEJlZmVobDoKCm1hbiBrYW5uIGRlbiBCb3RlbiBkZXIgQXJlbmEgbnVuIGlnbm9yaWVyZW4sIHVuZCB6d2FyIGVudHdlZGVyIGtvbXBsZXR0Cm9kZXIgbnVyIGJlc3RpbW10ZSBOYWNocmljaHRlbiB2b24gaWhtOgoKaWdub3JpZXJlIGFyZW5hLmR1ZWxsICAgICBpZ25vcmllcmUgYXJlbmEuZ2xhZGlhdG9yCgpJbSBlcnN0ZW4gRmFsbCB3ZXJkZW4gbnVyIGRpZSBOYWNocmljaHRlbiB1ZWJlciBhbmdlbWVsZGV0ZSBEdWVsbGUKaWdub3JpZXJ0LCBpbSB6d2VpdGVuIHVlYmVyIGFuZ2VtZWxkZXRlIEdsYWRpYXRvcmthZW1wZmUuCgppZ25vcmllcmUgYXJlbmEKCkluIGRpZXNlbSBGYWxsLCBudW5qYSwgd2lyZCBhbGxlcyBrb21wbGV0dCBpZ25vcmllcnQgdW5kIHVuc2VyIEJvdGUKd2lyZCBhcmJlaXRzbG9zLiBXaXIgaG9mZmVuLCBkaWVzIG5laG1lbiBuaWNodCBzb2ZvcnQgYWxsZSB3YWhyIC4uLgoKSW1tZXIgd2llZGVyIGhpbGZzYmVyZWl0CgogICAgICAgSW0gQXVmdHJhZyBkZXIgTUdBQkcKICAgICAgRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGllbHBsYXR6aW5zZWwgKENhdHdlYXpsZSwgMTMuIEp1biAxOTk1LCAxMzo1OToxMSk6CkhpIQpJbSBadWdlIGRlciBuZXVlbiBNRy1NdW5kLVByb3BhZ2FuZGEtRWluc3RlbGx1bmcgJ0Jhbmt6d2VpdGllcyBzaW5kClNjaGVpc3NlJywgd2VyZGVuIGRpZSBQcmVpc2UgYXVmIGRlciBTcGllbHBsYXR6aW5zZWwgYmFsZCBpbiBkZW4gS2VsbGVyCmZhbGxlbiAobmVpbiwga2VpbmUgU2NoYXVmZWwga2F1ZmVuLCBlaW5mYWNoIG51ciBuZXVlIFByZWlzZSBjaGVja2VuKS4KRGllcyBzb2xsdGUgZGFzIEhhbHRlbiB2b24gc29kYW5uIHVlYmVyZmx1ZXNzaWdlbiB1bmQgd2lkZXJsaWNoZW4gQmFuay0KendlaXRpZXMgdmVyZWluZmFjaGVuLi4uLgpZb3Vyc3QgdHJ1bHksCiAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCklkcmVzIGhhdCBJaHIgU29ydGltZW50IGVyd2VpdGVydCAoRHVyaWFuLCAyNC4gSnVsIDE5OTUsIDExOjU5OjA3KToKSGkhCgpIZXV0ZSBoYXQgSWRyZXMgSWhyIFNvcnRpbWVudCB1bSB2ZXJzY2hpZWRlbmUgWmF1YmVyenV0YXRlbiB1bmQgYW5kZXJlCkRpbmdlIGVyd2VpdGVydC4gRGFzIG1laXN0ZSBkYXZvbiBrYW5uIG1hbiBhbGxlcmRpbmdzIChub2NoKSBuaWNodApiZW51dHplbiA6LSkKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSWRyZXMgaGF0IElociBTb3J0aW1lbnQgZXJ3ZWl0ZXJ0IChBbmFraW4sIDI0LiBKdWwgMTk5NSwgMTI6MjM6NDMpOgojISBybj1EdXJpYW4gcnQ9ODA2NTc5OTQ3CkhtbSBpc3QgZGFzIG5lIEFua3VlbmRpZ3VuZyBmdWVyIG5lIFF1ZXN0ID8/Pz8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSWRyZXMgaGF0IElociBTb3J0aW1lbnQgZXJ3ZWl0ZXJ0IChEdXJpYW4sIDI0LiBKdWwgMTk5NSwgMTI6MjQ6MjApOgojISBybj1BbmFraW4gcnQ9ODA2NTgxNDIzCk5laW4hCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSWRyZXMgaGF0IElociBTb3J0aW1lbnQgZXJ3ZWl0ZXJ0IChBbmFraW4sIDI0LiBKdWwgMTk5NSwgMTI6Mjg6MTQpOgojISBybj1EdXJpYW4gcnQ9ODA2NTgxNDYwClNjaGFkZS4gV2llIHdhciBkYXMgbWl0IGRlbSBBYndhZWx6ZW4gZGVyIFF1ZXN0IGF1ZiBNaXRhcmJlaXRlciA/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSWRyZXMgaGF0IElociBTb3J0aW1lbnQgZXJ3ZWl0ZXJ0IChTaWx2YW5hLCAyNC4gSnVsIDE5OTUsIDE2OjQ2OjUwKToKIyEgcm49QW5ha2luIHJ0PTgwNjU4MTY5NApFcyBpc3QgbWVociBlaW5lIHNlaHIsIHNlaHIgZnJ1ZWhlIFZvcmFua3VlbmRpZ3VuZyBmdWVyIGVpbmUgR2lsZGUuLi4gOykKLSBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBJZHJlcyBoYXQgSWhyIFNvcnRpbWVudCBlcndlaXRlcnQgKEFuYWtpbiwgMjQuIEp1bCAxOTk1LCAxNzoyMjowMSk6CiMhIHJuPVNpbHZhbmEgcnQ9ODA2NTk3MjEwCldlbGNoZSBHaWxkZSA/PyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogSWRyZXMgaGF0IElociBTb3J0aW1lbnQgZXJ3ZWl0ZXJ0IChEdXJpYW4sIDI1LiBKdWwgMTk5NSwgMTA6Mzc6MDEpOgojISBybj1BbmFraW4gcnQ9ODA2NTk5MzIxCkRhIGVzIHNpY2ggdW0gWmF1YmVyenV0YXRlbiBoYW5kZWx0IGlzdCBkaWVzIG5hdHVlcmxpY2ggZWluZSBBbmt1ZW5kaWd1bmcKZGVyIEFzc2Fzc2luZW5naWxkZSEgU29uc3Qgbm9jaCBqZW1hbmQgRnJhZ2VuPz8KCjotKQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IElkcmVzIGhhdCBJaHIgU29ydGltZW50IGVyd2VpdGVydCAoQm9pbmcsIDI1LiBKdWwgMTk5NSwgMTA6NDY6NDkpOgojISBybj1EdXJpYW4gcnQ9ODA2NjYxNDIxCkFzc2Fzc2luZW5naWxkZT8gR29pbCEgSGFzdCBEdSBzaWUgc2Nob24gZmVydGlnPyA6KQogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBJZHJlcyBoYXQgSWhyIFNvcnRpbWVudCBlcndlaXRlcnQgKFJ4dGVjaCwgMjUuIEp1bCAxOTk1LCAxMToxMjozNyk6CiMhIHJuPUJvaW5nIHJ0PTgwNjY2MjAwOQpHaWJiZXQgZGVubiBzY2hvbiBtYWhyIGFscyBuZSB2YWdlIEJlc2NocmVpYnVuZyBkYXZvbj8gTWFjaCB1bnMgZG9jaCBtYWwKQXBwZXRpdCBEYW5jZXIgYWVoIER1cmlzYW4gYWVoIHdlciBhdWNoIGltbWVyCgppbnRlcmVzc2llcnQgUnh0ZWNoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBJZHJlcyBoYXQgSWhyIFNvcnRpbWVudCBlcndlaXRlcnQgKEdyaW1tYm9ybiwgMjUuIEp1bCAxOTk1LCAxNjoxMDoxOCk6CiMhIHJuPUR1cmlhbiBydD04MDY2NjE0MjEKWmF1YmVyenV0YXRlbj8gRnVlciBkaWUgQXNzYXNzaW5lbmdpbGRlPyBVZWJlcmhhdXB0OiBXb2xsdGUgU2lsdmFuYSBuaWNodAplaW5lIFphdWJlcmdpbGRlIHByb2dyYW1taWVyZW4/ClJhZXRzZWxoYWZ0LCByYWV0c2VsaGFmdC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBJZHJlcyBoYXQgSWhyIFNvcnRpbWVudCBlcndlaXRlcnQgKEFudGhlYSwgMjYuIEp1bCAxOTk1LCAxMDo0OToyNyk6CiMhIHJuPUdyaW1tYm9ybiBydD04MDY2ODE0MTgKSmEgZ2xhdWJzdCBEdSwgZGllIEFzc2Fzc2luZW4gbXVlc3NlIG5pY2h0IHphdWJlcm4ga29lbm5lbj8gc2NobGllc3NsaWNoCm11ZXNzZW4gc2llIGphIG1vZWdsaWNoc3QgdW5zaWNodGJhciBibGVpYmVuLCBkYW1pdCBzaWUgaWhyZW4gSm9iIGF1c3VlYmVuCmtvZW5uZW4uIFVuZCB3ZW5uIGljaCBkYSBhbiBkaWUgZ2FuemVuIEdpZnRlIGRlbmtlLCBkaWUgYXVzIFphdWJlcmtyYWV1dGVybgpnZW1pc2NodCB3ZXJkZW4ga29lbm5lbi4uLi4KCiAgICAgQW50aGVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBJZHJlcyBoYXQgSWhyIFNvcnRpbWVudCBlcndlaXRlcnQgKER1cmlhbiwgMjYuIEp1bCAxOTk1LCAxNTowNTowNyk6CiMhIHJuPUFudGhlYSBydD04MDY3NDg1NjcKSWNoIHdlcmRlIGRhcyB1bmJlc3RpbW10ZSBHZWZ1ZWhsIG5pY2h0IGxvcywgbWVpbmUgSXJvbmllIGhhdCBuaWVtYW5kCnZlcnN0YW5kZW4gLi4uIGhtbSwgbXVzcyBhbiBtaXIgbGllZ2VuLCBuYWphLCBtYW4gZ2V3b2VobnQgc2ljaCBhbiBhbGxlcyEKCi0gRHVyaWFuCjstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IElkcmVzIGhhdCBJaHIgU29ydGltZW50IGVyd2VpdGVydCAoWWVuZGksIDI3LiBKdWwgMTk5NSwgMTI6MjI6MzcpOgojISBybj1EdXJpYW4gcnQ9ODA2NzYzOTA3CgpEdXJpYW4sIGdhbnogaW0gRXJuc3Q6IFdhcnVtIG5pY2h0PwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBMYWIgNCBtYWwgbyAuLi4gKEplcnJpY28sIDI0LiBBdWcgMTk5NSwgMDc6MDY6MjMpOgpFcyBnZWh0IHVtIGRhcyBMYWJ5cmludGggb2RlciBkYXMgR2ViaWV0IDQgbyB2b24gZGVyIEtyZXV6dW5nCkRyYWNoZW5ob3J0ZXJzdHJhc3NlIC9Pc3R3YWxsLgpJcmdlbmR3aWUgaXN0IGVzIG1pciBnZWx1bmdlbiBkdXJjaDoKbixzLHcsbngsbngsc3gscyxzbyxzCmluIGVpbiBnZWJpZXQgdm9uIDEwIHJhZXVtZW4genUga29tbWVuLCBkaWUgaW4gc2ljaCBhYmdlc2NobG9zc2VuIHNpbmQuCkZhbGxzIGRpZSBNdWVuemVuIG5vY2ggZGEgbGllZ2VuIHNvbGx0ZW4sIHdlbm4gZWluIE1hZ2llciBzaWNoIGRhcyBhbnNjaGF1dApzbyBzaW5kIGRhcyBkaWUgUmFldW1lIDIxIGJpcyAzMS4KSW4gZGllc2VuIDEwIFJhZXVtZW4sIGhhYiBpY2ggYWxsZSA4IEhpbW1lbHNyaWNodHVuZ2VuIGFiZ2VsYXVmZW4gdW5kCmFsbGUgRGV0YWlscyB1bnRlcnN1Y2h0LCB2ZXJzdWNodCBtaXQgZGVuIDMgTlBDcyB6dSBrb21tdW5pemllcmVuLAp1bmQgc2llIGRhbmFjaCBnZW1ldWNoZWx0LgpMZWlkZXIgYWxsZXMgb2huZSBlaW5lbiBBdXNnYW5nIGF1cyBkaWVzZW0gR2VmYWVuZ25pcyB2b24gMTAgUmFldW1lbgp6dSBmaW5kZW4uCldlbm4gZXMgbmljaHQgaXJnZW5kZWluZW4gR2VoZWltYXVzZ2FuZyBnZWJlbiBzb2xsdGUsIGRlbiBtYW4gZGFkdXJjaApiZXRyaXR0IDoKCj5zYWcgVG9sbGUgTGVpc3R1bmcgR3VuZHVyICEhISA6KQoKZGFubiBzY2hlaW50IG1pciBkYXMgZWluIEJ1ZyB6dSBzZWluLgpEYSBpY2ggd2VkZXIgTHVzdCBoYWJlICdlbmRlJyB6dSBtYWNoZW4sIHdlZ2VuIG1laW5lciB0b2xsZW4gQXVzcnVlc3R1bmcKKDIgQnVtaXMpLCBqYWphIGljaCB3ZWlzcyBlaW4gUmluZyArNCBHZSBpc3QgYXVjaCB3YXMgdG9sbGVzLi4uLi4KKmdyaW5zIFJvc2EgYW4qCi4uLm5vY2ggZGVuIGxldHp0ZW4gV3Vuc2NoIG1laW5lcyBEc2NoaW5ucyB6dSBiZW51dHplbi4gR2FueiBuZWJlbmJlaQppc3QgZGVyIERzY2hpbm4gYXVjaCBldHdhcyBidWdneSAhPyB3aWUgdGVsZXBvcnRpZXJ0IG1hbiBpbiBhYmVudGV1cmVyZ2lsZGUgPwpvZGVyIGthbm4gbWFuIG51ciBpbiBkaWUgZWlnZW5lIGdpbGRlIHRlbGVwb3J0aWVyZW4gPyBuYWphIGVnYWwuCkFud2VzZW5kZSBqb2ludHJhdWNoZW5kZSBNYWdpZXIsIGljaCB3aWxsIGtlaW5lIE5hbWVuIG5lbm5lbiwgc29uc3QKYmVrb21tZSBpY2ggRHluYW1pdCBpbiBkaWUgSGFuZCBnZWRydWVja3QsIHdvbGx0ZW4gb2RlciBrb25udGVuIG1pcgphdWNoIG5pY2h0IHdlaXRlcmhlbGZlbi4KRGVzaGFsYiBHdW5kdXIsIG9kZXIgZWluIGFuZGVyZXIgV3Vlc3Rlbm1hZ2llciwgZGVyIHNpY2ggZnVlciBkaWVzZXMKR2ViaWV0IHZlcmFudHdvcnRsaWNoIGZ1ZWhsdCwgYml0dGUgaWNoIERpY2ggRGlyIGRhcyBtYWwgZ2VuYXVlciB1bnRlcgpkaWUgTHVwZSB6dSBuZWhtZW4uCkphamEsIHVlYnJpZ2VucyBoYWIgaWNoIGRhcyBTY2hpbGQgZ2VsZXNlbiAnQmV0cmV0ZW4gYXVmIGVpZ2VuZSBHZWZhaHInCmFiZXIgd2VubiBtYW4gYXVmIGRlciBTdWNoZSBuYWNoIGVpbmVtIFRlbXBlbCBpbiBkZW4gTmFibGFzdWVtcGZlbiBpc3QsCmRhbm4gZ2VodCBtYW4gaGFsdCByZWluLgpWaWVsbGVpY2h0IGtvZW5udGUgbWFuIGF1ZiBkYXMgU2NoaWxkIHNjaHJlaWJlbiwgZGFzcyBlcyBoaWVyIGFic29sdXQgbmljaHRzCmF1c3NlciBlaW5lciBLcm9ldGUgdW5kIDMgRWNoc2VubWVuc2NoZW4gZ2lidC4KCldlbm4gZXMgZG9jaCBlaW5lbiBsZWljaHQgenUgZmluZGVuZGVuIEF1c2dhbmcgZ2ViZW4gc29sbHRlLCB1bmQgZGllCk1vZWdsaWNoa2VpdCBzaWNoIGZlc3R6dWZhaHJlbiBhdXNnZXNjaGxvc3NlbiBzZWluIHNvbGx0ZSwgZGFubiBrYW5uCmRlciBlcnN0ZSBNYWdpZXIgZGVyIGRhcyBsaWVzdCwgZGVuIEFydGlrZWwgbG9lc2NoZW4sIHVuZCBtaXIgQmVzY2hlaWQKc2FnZW4uCgoKSmVycmljbywgc2l0enQgbm9jaCBpbW1lciBmZXN0IHVuZCBzY2hhdXQgc2ljaCBzZWluZSBCdW1pcyB6dW0gbGV0enRlbiBNYWwKYW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFzIExhYiA0IG1hbCBvIC4uLiAoSmVycmljbywgMjQuIEF1ZyAxOTk1LCAwNzoxMzo0Myk6CiMhIHJuPUplcnJpY28gcnQ9ODA5MjQwNzgzCkRlciB3ZWcgd2FyIG5hdHVlcmxpY2ggZmFsc2NoCmFsc28gdm9uIGRlciBLcmV1enVuZyA1IG1hbCBuYWNoIG9zdGVuCm4KcwpzCncKbgp3Cm4KdwpvCnMKdwpzCnNvCnMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGFzIExhYiA0IG1hbCBvIC4uLiAoSmVycmljbywgMjQuIEF1ZyAxOTk1LCAwNzoxNTo1OCk6CiMhIHJuPUplcnJpY28gcnQ9ODA5MjQxMjIzCkFSR0hISEgKYWxzbyBub2NobWFsIHN4IHN0ZWh0IGZ1ZXIgc3VlZHdlc3RlbgpLcmV1enVuZywgNSBtYWwgbywgbixzLHMsdyxueCxueCxvLHN4LHMsc28scyBtdWVzc3RlIHJhdW0gbWl0IDIxIG11ZW56ZW4gc2VpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEYXMgTGFiIDQgbWFsIG8gLi4uIChKZXJyaWNvLCAyNC4gQXVnIDE5OTUsIDA3OjIyOjQwKToKIyEgcm49SmVycmljbyBydD04MDkyNDEyMjMKRGVyIERzY2hpbm4gZ3JpbnN0IERpY2ggYW46ICJPayBNZWlzdGVyLCBkYXMgd2FyIERlaW4gbGV0enRlciBXdW5zY2guCi4uLi4KRGVyIERzY2hpbm4gd2lua3QgRGlyIHp1LCBzY2huYXBwdCBzaWNoIGRpZSBXdW5kZXJsYW1wZSB1bmQgc2NoaWVzc3QgZGVyClNvbm5lIGVudGdlZ2VuLgoKCkZhbGxzIGVzIHNpY2ggZXJnZWJlbiBzb2xsdGUsIGRhc3MgZXMgc2ljaCB1bSBlaW5lbiBCdWcgaGFuZGVsdCwgd3VlcmRlCmljaCBtaWNoIHVlYmVyIGVpbmUgbmV1ZSBXdW5kZXJsYW1wZSBmcmV1ZW4gOikKCgpKZXJyaWNvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFzIExhYiA0IG1hbCBvIC4uLiAoVHJ5ZmFuLCAyNC4gQXVnIDE5OTUsIDEwOjA0OjEzKToKIyEgcm49SmVycmljbyBydD04MDkyNDA3ODMKSHVodQogYWxzbyBlcyBnaWJ0IHNjaG9uIEhpbndlaXNlIGF1ZiBkZW4gV2VnIG5hY2ggZHJhdXNzZW4uIE1hbiBtdXNzIHNpY2ggbnVyCmV0d2FzIGdlbmF1ZXIgdW1zZWhlbi4gRGFzIGVzIG5pY2h0IGVpbmZhY2ggaXN0LCBnZWJlIGljaCBnZXJuZSB6dS4KVHJ5ZmFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFzIExhYiA0IG1hbCBvIC4uLiAoUm9hZHJ1bm5lciwgMjQuIEF1ZyAxOTk1LCAxMDoxMDozNyk6CiMhIHJuPUplcnJpY28gcnQ9ODA5MjQwNzgzCnRqYSwgaWNoIHdhciBtYWwga3VyeiBkb3J0IC0gaXN0IGRvY2gga2VpbiBQcm9ibGVtIC0gZXMgZ2lidCB1ZWJyaWdlbnMgYXVzCmJlaWRlbiBiZXJlaWNoZW4gZGVzIG5hYmxhc3VtcGZzIGpld2VpbHMgZWluZW4gZWluZGV1dGlnZW4gd2VnIG5hY2ggZHJhdXNzZW4gLQplZ2FsIGF1ZiB3ZWxjaGVtIGZlbGQgbWFuIGdyYWRlIHN0ZWh0IDopIGRpZSBoaW53ZWlzZSBoYWIgaWNoIHp3YXIgbmljaHQKZ2VmdW5kZW4gLSBhYmVyIGxldHp0ZW5zIGRhcyBnZWJpZXQgdm9sbHN0YWVuZGlnIGthcnRpZXJ0IQoKCQkJUm9hZFJ1bm5lciAocmVubnQgYXVjaCBkb3J0IHJhdXMpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERhcyBMYWIgNCBtYWwgbyAuLi4gKEd1bmR1ciwgMjQuIEF1ZyAxOTk1LCAxMzo1NjozNCk6CiMhIHJuPVJvYWRydW5uZXIgcnQ9ODA5MjUxODM3ClRqbyBkYSBoYXQgVHJ5ZmFuIHNjaG9uIHJlY2h0Li4uZGVyIEF1c2dhbmcgaXN0IGVpbmRldXRpZy4uLmluIGVpbmVtIExhYiBpc3QKaGFsdCBkaWUgTXVlbnptZXRob2RlIG5pY2h0IGltbWVyIGRpZSBlaW5mYWNoc3RlLi5vYndvaGwgZGllIG5hdHVlcmxpY2ggYXVjaApmdW5rdGlvbmllcnQuLi4KQWxzbyBrcmFlZnRpZyB1bnRlcnN1Y2hlbi4uLndlbm4gbWFuIG1pdCBuZW0gZWluZmFjaGVuIHVudCB3ZWcgcmF1c2tvbW1lbgp3dWVyZGUgaGFldHRlIG1hbiBzaWNoIGphIG5pY2h0IHZlcmxhdWZlbiA6LSkKR3J1c3MKR3VuZHVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hZ2ljIChBbnRoZWEsICA0LiBOb3YgMTk5NSwgMDE6NDE6MjYpOgojISBybj1GZWxhZ3VuZCBydD04MTU0MzU1MjEKVGphLCBkaWVzZSBSdWJyaWsgaXN0IGphIGdlbmF1c28gc2lubmxvcyB3aWUgZGllIFJlZ2lvbiBhbiBzaWNoLi4uClNjaGxpZXNzbGljaCBpc3QgZXMgamEgbnVyIGVpbiBncm9zc2VyIFNhbmRzdHJhbmQsIGluIGRlbSBzaWNoIHNvIHNlbHRzYW1lCkdyb3Nza2F0emVuIGF1cyBBbmdzdCB2b3IgZGVtIE1lZXIgdmVyZ3JhYmVuLi4uLiA6KQogICAgICAgQW50aGVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYWdpYyAoTGFyaWVsLCAgNS4gTm92IDE5OTUsIDExOjM1OjIxKToKIyEgcm49QW50aGVhIHJ0PTgxNTQ0NTY4NgpHZW5hdSAtIERpZSBXdWVzdGUgaXN0IG51ciB3YXMgenVtIHZlcmxhdWZlbiwgbWFuIGtvZW5udGUgc2llIHNlaHIgZ3V0CnJhdXNuZWhtZW4gdW5kIGRhZnVlciBkZW4gT3JrcyBlbmRsaWNoIGVpbmUgQXJ0IGtsZWluLU1vcmRvciBnZWJlbi4uLiBVbmQgd2lyCmtvZW5udGVuIGVpbmUgU3RhZHQgbWVociBkYXZvciBzZXR6ZW4uIERhcyB3YWVyIGx1c3RpZ2VyIGFscyBzb25zdCwgdW5kIGRpZQpBcmVuYSBrYW5uIG1hbiBhdWNoIGluIGRpZQpEcmFjaGVuemlubmVuIHZlcmxlZ2VuIG9kZXIgdmllbGVpY2h0IGluIGRpZSBTY2hyZWNrZW5zc3BpdHplLgoKU0NITUVJU1NUIERJRSBXVUVTVEUgUkFVUyEhIQoKCkxhcmllbCBkZXIgV2FsZGxhZXVmZXIgKG5vY2gpCltoYWxiIGlyb25pc2NoLCBoYWxiIHRvZXRsaWNoIGVybnN0XQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWFnaWMgKFRvc3MsICA1LiBOb3YgMTk5NSwgMTg6NDU6MDQpOgojISBybj1MYXJpZWwgcnQ9ODE1NTY3NzIxCld1ZXN0ZSBpc3QgbmUga2xhc3NlIHJlZ2lvbi4gZWluZmFjaCBudXIgYXVzIHByaW56aXAuCgpSeW5lLiBBbmdlaGVuZGVyIFd1ZXN0ZW56d2VyZyBpbSBVbXp1Z3NzdHJlc3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNYWdpYyAoSm9mLCAgNi4gTm92IDE5OTUsIDEwOjM5OjQxKToKIyEgcm49QXNtb2RpcyBydD04MTU2NDMyMzcKCiBOZWluLCBkaWUgV3Vlc3RlIGlzdCBlaW4gdG9sbGUgUmVnaW9uIQoKIChTcGFldGVzdGVucyBzZWl0IG1laW5lIEZyYXUgZGF6dWdlaG9lcnQgOikpCgogSm9mCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBNYWdpYyAoRHVyaWFuLCAgNi4gTm92IDE5OTUsIDExOjIwOjI1KToKIyEgcm49Sm9mIHJ0PTgxNTY1MDc4MQoKSm9mIGhhdCBnZXNwcm9jaGVuIQoKVW5kIGVyIGhhdCBSZWNodCAuLi4KCnZvbGxlciBQYXRyaW90aXNtdXMsCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcmVuYSAoRHVyaWFuLCAgNi4gTm92IDE5OTUsIDEyOjA4OjMxKToKSGFsbG8gTGV1dGUhCgpHYW56IHNvIHdhciBkaWUgQXJlbmEgbmljaHQgZ2VkYWNodCAuLi4KCk5hY2hkZW0gdmVyc2NoaWVkZW5lIExldXRlIC4uLiBobW1tIC4uLiBpY2ggc2FnZSBtYWwgemllbWxpY2ggb2Z0IGRpZQpHbGFkaWF0b3JlbnF1ZXN0IGhpbnRlcmVpbmFuZGVyIGdlbG9lc3QgaGFiZW4sIG11c3MgaWNoIGxlaWRlciBsZWlkZXIKZWluc2NocmVpdGVuLiBTbyBnZWh0IGRhcyBuaWNodCB3ZWl0ZXIuIEFiIHNvZm9ydCBrYW5uIG5pZW1hbmQgbWVocgpkaWUgR2xhZGlhdG9yZW4gaGVyYXVzZm9yZGVybiwgZGVyIGRpZSBRdWVzdCBiZXJlaXRzIGdlbG9lc3QgaGF0LgoKSmEsIGljaCB3ZWlzcywgamV0enQgZ2VodCB3aWVkZXIgZGVyIGdyb3NzZSBQcm90ZXN0c3R1cm0gbG9zLCBhYmVyIGVzCnNlaSBFdWNoIGdlc2FndDogbmFjaCBtZWluZW4gRGlwbG9tcHJ1ZWZ1bmdlbiB3aXJkIGRpZSBBcmVuYSB1bSBlaW4KRmVhdHVyZSBlcndlaXRlcnQsIHdhcyBkaWUgU2FjaGUgd2llZGVyIGludGVyZXNzYW50IG1hY2hlbiBzb2xsLgoKU28sIHVuZCB3ZWlsIG1pciBzb25zdCBuaWVtYW5kIGdsYXVidCwgZ2ViZSBpY2ggbWFsIGFuLCB3aWUgb2Z0IGRpZSAxMApoYWV1Zmlnc3RlbiBPYmVyZ2xhZGlhdG9yZW4gdW5zZXJlbiBGcmV1bmQgSGVya3VsZXMgYmVzaWVndCBoYWJlbi4KRXJzdG1hbCBvaG5lIE5hbWVuLCBhdWYgV3Vuc2NoIGthbm4gaWNoIGphIGF1Y2ggbm9jaCBkaWUgTmFtZW4gZGF6dQp2ZXJvZWZmZW50bGljaGVuOgoKMSkgMzAwICghKSBtYWwgT2JlcmdsYWRpYXRvciBnZXdvcmRlbgoyKSA4OQozKSA1Ngo0KSA0MQo1KSAzNgo2KSAzMwo3KSAyNAo4KSAyMAo5KSAxNwoxMCkgMTYKCkdydWVzc2UsCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2xhZGlhdG9yZW4gKER1cmlhbiwgIDYuIE5vdiAxOTk1LCAxMjozNzowOCk6CkhpIQoKRGEgaWNoIGdlcmFkZSBkYWJlaSB3YXIgLi4uIGRhIGljaCB3aWVkZXJob2x0IGFscyBBbnR3b3J0IGF1ZiBkaWUKR2xhZGlhdG9yZW5xdWVzdCBlaW5lbiBISW53ZWlzIGVyaGllbHQsIGRpZSBRdWVzdCBzZWkgYWxzIE1ldHplbHF1ZXN0CmdhbnogbmV0dCwgcmljaHRpZyBlaW5nZXN0dWZ0IGFiZXIgZGllIExldmVsZWluc3R1ZnVuZyBtdWVzc3RlCm5pZWRyaWdlciBsaWVnZW4gLi4uLi4gaGFiZSBpY2gga3VyemVyaGFuZCBkaWUgR2xhZGlhdG9yZW4gYW4gZGFzCmF1Z2VuYmxpY2tsaWNoZSBLYW1wZm5pdmVhdSBhbmdlcGFzc3QuIE5laW4sIG5pY2h0IHZpZWwsIGFiZXIgZWluIHdlbmlnIQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcmVuYSAoSmVycmljbywgIDYuIE5vdiAxOTk1LCAxODozMjozOSk6CiMhIHJuPUR1cmlhbiBydD04MTU2NTYxMTEKSXN0IGRhcyBlaW4gUXVpeiBEdXJpYW4gPwpOYSBkYW5uIHRpcHBlIGljaCBtYWw6CjEpIEZ5dCA6KSAodWVicmlnZW5zIGRpZSAxMCUgbGllZ2VuIHdpZWRlciBiZWltIEJldHRsZXIgOikgKQoyKSBXaWxsb3cKCk5hIGphIGJlaW0gcmVzdCB3aXJkcyBzY2hvbiBzY2h3aWVyaWdlciwgaGFsdCBkYXMgcmVzdGxpY2hlIG1ldHplbG5kZQpTZWhlcnBhY2sgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcmVuYSAoU3VzaGksICA2LiBOb3YgMTk5NSwgMjI6MDA6MjApOgojISBybj1EdXJpYW4gcnQ9ODE1NjU2MTExCkljaCB3aWxsIGphIG5pY2h0IG1hdWxlbiwgYWJlciB3byBpc3QgZGFzIFByb2JsZW0sIHdlbm4gaWNoIG1pdHRlbiBpbiBkZXIKTmFjaHQgZGllIEFyZW5hIGxlZXJwdXR6ZT8gSWNoIGhhYmUgd2VkZXIgVEYgbm9jaCBLYW1wZnNjcmlwdHMgYmVudXR6dCAoZnJhZwplaW5lbiBEZWluZXIgbmV1Z2llcmlnZW4gTWFnaWVya29sbGVnZW4sIGRpZSB1bSAzOjQwIDEwIE1pbnV0ZW4gYnJhdWNodGVuIHVtCmhlcmF1c3p1ZmluZGVuLCBkYXNzIGljaCB0YXRzYWVjaGxpY2ggZGEgd2FyLgpFcyBrYW5uIGphIHdvaGwga2VpbmVuIFVudGVyc2NoaWVkIG1hY2hlbiwgb2IgaXJnZW5kd28gb2RlciBvaW4JKmhhdSBhdWYgZGllClRhc3RhdHVyKiAqdHJldCBnZWdlbiBkZW4gQ29tcHV0ZXIqIChTb3JyeSBmdWVyIGRpZSBUeXBvcykKQWxzbyBub2NobWFsOi4uLgpvYiBpY2ggaXJnZW5kd28gaW0gTVVEIG1ldHpsZSBvZGVyIGluIGRlciBBcmVuYS4gRXMgaXN0IG5hZW1saWNoIG5hY2ggd2llIHZvcgprZWluIFp1Y2tlcnNjaGxlY2tlbiwgbWl0IE1vZGVtIGVpbiBIYXVzLCBiencuIGRlc3NlbiBSYWV1bWUgenUgZXJtZXR6bGVuLAp3ZW5uIG1hbiBuaWNodCAyNSBvbmxpbmUtVGFnZSBoYXQgdW0gS2FyYXRla2EgenUgd2VyZGVuLgoKRWluIFNUSU5Lc2F1cmVyIFN1c2hpCgpQLlMuIEphamEsIGZsYW1lIG1lIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcmVuYSAoRmFudWlkaG9sLCAgNy4gTm92IDE5OTUsIDA5OjMzOjU4KToKIyEgcm49U3VzaGkgcnQ9ODE1NjkxNjIwCj4gSWNoIHdpbGwgamEgbmljaHQgbWF1bGVuLCBhYmVyIHdvIGlzdCBkYXMgUHJvYmxlbSwgd2VubiBpY2ggbWl0dGVuIGluIGRlcgpbLi4uXQo+IEVpbiBTVElOS3NhdXJlciBTdXNoaQoKVHN0cywgd2FzIGlzdCBkYXMgZGVubiBkYW5uIGFuZGVyZXMgYWxzIG1hdWxlbiwgd2VubiBpY2ggbWFsIHNjaHVlY2h0ZXJuCmZyYWdlbiBkYXJmPyBVbmQgendhciBnYW56IHNjaG9lbiBnZW1hdWx0Li4uCgpFcyBpc3QgKGxlaWRlcikgRHVyaWFucyBBcmVuYSB1bmQgZXIgZGFyZiBkYXJhbiBtYWNoZW4gd2FzIGVyIHdpbGwuCihTb2xhbmdlIGVyIG5pY2h0IGdlZ2VuIGlyZ2VuZHdlbGNoZSB3aXpydWxlcyB2ZXJzdG9lc3N0KQoKSWNoIGJpbiBhdWNoIGRhZ2VnZW4gZGFzcyBkaWUgQXJlbmEgZ2VhZW5kZXJ0IHdpcmQsIGRlbm4gZGFzIHdhciBkaWUKZWluemlnZSBNb2VnbGljaGtlaXQsIGJlaSBkZXIgQWJlbnRldXJlciBtaXQgQnVtZXJhbmdzIGJlaW5haGUgc28Kc2NobmVsbCB3YXJlbiB3aWUgS2FyYXRla2EgbWl0IEJ1bWVyYW5ncy4gVW5kIG1laHIgRVAgbWFjaGVuIGFscyBpbQpub3JtYWxlbiBTcGllbCB3YXIgYXVjaCBuaWNodCBtb2VnbGljaC4gKHdlbmlnc3RlbnMgZnVlciBtaWNoIGFscwpDYXJhZGhyYXMpIE5vY2ggZGF6dSBoYXQgZXMgZWluaWdlcyBhbiBHZWxkIGdla29zdGV0IHVuZCBuaWNodHMgKGJlaW5haGUKbmljaHRzKSBhbiBSdWVzdHVuZ2VuLi4uIGdlYnJhY2h0LiBOdXIgU3Bhc3MsIHdlbm4gbWFuIFZlcmdsZWljaGUgYW5nZS0Kc3RlbGx0IGhhdCB3ZXIgZGllIEdsYWRpcyBzY2huZWxsZXIgdW1sZWdlbiBrYW5uLCB3ZW5uIG1hbiBtaXQgYW5kZXJlbgpTZWhlcm4gaW4gS29ua3VycmVueiB3YXIsIHdlciBhbSBtZWlzdGVuIExQIHVlYnJpZyBoYXQsIGFtIHdlbmlnc3RlbiB0YW5rZW4KbXVzc3RlLi4uIC4gRGllcyB3aXJkIGJlaSBkZW4gbmV1ZW4gbmljaHQgbWVociBtb2VnbGljaCBzZWluLiAoZGEKc2Nob24gZGllIG1pdHRsZXJlbiB2aWVsIHp1IHN0YXJrIGZ1ZXIgbWljaCBhbHMgQWJlbnRldXJlciBzaW5kIHVuZCBzbwpkaWUgd2VpdGF1cyB1ZWJlcmxlZ2VuZSBLcmFmdCBkZXIgaG9laGVyZW4gS2FyYXRla2EgZHVyY2hzY2hsYWVndCkKCkFscyAnVm9sa3NiZWx1c3RpZ3VuZycgd2FyIGRlc2hhbGIgZGllIGFsdGUgQXJlbmEgd3VuZGVyc2Nob2VuLCBkYXJ1bQp3b2xsdGUgaWNoLCBkYXNzIHNpZSBibGVpYnQuIEFiZXIgZGFzIHdpcmQgJ29iZW4nIHdvaGwgbmljaHQgdmVyc3RhbmRlbi4KU2NoYWQnIGRydW0uCgogICAgICAgICB0c2NodWVzcyAgICAgIEZhbnVpZGhvbAogICAgICAgICAgICAgICAgICAgIGFlaCBDYXJhZGhyYXMgKGt1cnogTVBBIGxlc2VuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFyZW5hIChMaSwgIDcuIE5vdiAxOTk1LCAwOTozNjoyMSk6CiMhIHJuPUZhbnVpZGhvbCBydD04MTU3MzMyMzgKV2VyIGR1cmlhbnMgQXJ0aWtlbCBhdWZtZXJrc2FtIGdlbGVzZW4gaGFldHRlLCBkZW0gd2FlcmUgYXVmZ2VmYWxsZW4sIGRhc3MgZXIKc2NoaWViLCBlciB3dWVyZGUgZGllIEFyZW5hIG5hY2ggc2VpbmVuIEFyYmVpdGVuIHdpZWRlciBhdHRyYWt0aXZlciAoYXVjaCBmdWVyClNlaGVyKSBtYWNoZW4uIGRpZSBqZXR6aWdlIExvZXN1bmcgaXN0IG51ciBlaW5lIHZvcnJ1ZWJlcmdoZW5kZS4KQWxzbyBiZXJ1aGlndCBldWNoLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEFyZW5hIChGYW51aWRob2wsICA3LiBOb3YgMTk5NSwgMDk6NDE6MTYpOgojISBybj1MaSBydD04MTU3MzMzODEKSWNoIHdlaXNzLCBpY2ggaGFiIGphIHNjaG9uIG1hbCB3ZWxjaGUgdm9uIGRlbiBuZXVlbiBNb25zdGVybiBnZXRlc3RldC4KU29uc3Qga29lbm50ZSBpY2ggamEgbmljaHQgc2FnZW4gZGFzcyBzaWUgdmllbCB6dSBzdGFyayBzaW5kIGZ1ZXIgbWljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEFyZW5hIChGeXQsICA4LiBOb3YgMTk5NSwgMDY6NTU6MzUpOgojISBybj1GYW51aWRob2wgcnQ9ODE1NzMzNjc2Ck5hamEuLi4gdW5kIGVpbmUgYmlsbGlnZSBMb2VzdW5nIHdhZXJlIGdld2VzZW4sIGRpZSBFUCwgZGllJ3MgZnVlcgpkaWUgQXJlbmEgZ2lidCAoZC5oLiAyODAwMCspIGF1ZiBjYS4gMTgwMDAgenUgYmVzY2hyYWVua2VuLCBkYW5uCmxvaG50IHNpY2ggZGFzIG5hZW1saWNoIGF1Y2ggbmljaHQgenVtIEVQIG1ldHplbG4uCkZ5dC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBcmVuYSAoRHVyaWFuLCAgOC4gTm92IDE5OTUsIDEzOjI3OjE3KToKIyEgcm49Rnl0IHJ0PTgxNTgxMDEzNQpIaSEKCkljaCB3dXNzdGUgZXMgLi4uIGljaCBtYWNoZSBldHdhcyB1bmQgYWxsZSByZWdlbiBzaWNoIGF1ZiA6LSkgTmFqYSwKbWFuIGdld29laG50IHNpY2ggZHJhbi4gT2theSwgYWxzbyBub2NobWFsIGVpbiBwYWFyIFdvcnRlOgoKMSkgRGllIEFyZW5hIHd1cmRlIHZvciBhbGxlbSBhdWZncnVuZCBlaW5lciBEaXNrdXNzaW9uIHVudGVyIE1hZ2llcm4KZ2VzY2hsb3NzZW4sIHdlaWwgbWlyIGVpbmZhY2ggZGllIEFyZ3VtZW50ZSBmZWhsZW4gZWluZSBzb2xjaGUgd2lsZGUKTWV0emVsZWkgdW50ZXIgZGVuIEdsYWRpYXRvcmVuIHp1IHJlY2h0ZmVydGlnZW4hCgoyKSBXZW5uIGRpZSBBcmVuYSB3ZW5pZ2VyIEVQJ3MgYnJpbmd0LCBkYW5uIG1hZyBkYXMgdmllbGxlaWNodCBFdWNoCndpbGRlbiBTY2hsYWVjaHRlciAoOi0pKSBhdWZoYWx0ZW4sIGFiZXIgZXMgd3VlcmRlIGF1Y2ggZGllIGJlc3RyYWZlbiwKZGllIGRpZSBRdWVzdCB6dW0gZXJzdGVubWFsIG1hY2hlbiEKCjMpIERpZSBBcmVuYSB3YXIgbmllIHVuZCBpc3QgYXVjaCBuaWUgenVtIEVQLVNjaGVmZmVsbiBnZWRhY2h0LCBkZXNoYWxiCmlzdCBlcyBtaXIgb2ZmZW4gZ2VzdGFuZGVuIGVnYWwsIG9iIGRhZHVyY2ggamVtYW5kIG51biBuYWNodHMgbWl0IE1vZGVtCm5pY2h0IG1laHIgd2llIGVpbiBXaWxkZXIgbWV0emVsbiBrYW5uLgoKNCkgQ2FyYWRocmFzLCBEdSBoYXN0IHp3YXIgZGllIG5ldWVuIEdsYWRpcyBzY2hvbiBnZXRlc3RldCAuLi4gYWJlciBpbgplaW5lciBzZWhyIGhvaGVuIFN0dWZlICh3aWUgaWNoIGRlbmtlKS4gRXMgZ2lidCBTdHVmZW4gZHJ1bnRlciwgZGllCnNpbmQgYXVjaCBmdWVyIE5vcm1hbHN0ZXJibGljaGUgc2NoYWZmYmFyLiBTbyBpc3QgZGVyIGxlaWNodGVzdGUgZGVyCmRhbm4gbmV1ZW4gR2xhZGlhdG9yZW4gZXR3YXMgc2Nod2FlY2hlciBhbHMgSm9oYW5uYSwgdW5kIGVyc3QgYmVpIElocgp3dXJkZSBkaWUgQXJlbmEgaW50ZXJlc3NhbnQsIG9kZXI/Cgo1KSBFcyB3ZWlzcyB6d2FyIG5pY2h0IHdhcnVtIGVzIGxlaWRlciBtZWluZSBBcmVuYSBpc3QsIGFiZXIgZXMgaXN0CnJpY2h0aWcsIGRhc3MgaWNoIGRvcnQgbWFjaGVuIGtvZW5udGUgd2FzIGljaCB3b2xsdGUuIEljaCBiZWhhdXB0ZQp2b24gbWlyIHNlbGJlciBhYmVyIGltIFJhaG1lbiBkZXNzZW4gd2FzIGljaCBmdWVyIHJpY2h0aWcgaGFsdGUgdW5kCmltIFJhaG1lbiBtZWluZXIgYXVnZW5ibGlja2xpY2hlbiBaZWl0IFJ1ZWNrc2ljaHQgYXVmIG1vZWdsaWNoc3QKdmllbGUgU3BpZWxlci0gTWFnaWVybWVpbnVuZ2VuIFJ1ZWNrc2ljaHQgenUgbmVobWVuLiBEYXNzIGljaCBlcwpuaWUgYWxsZW4gUmVjaHQgbWFjaGVuIGthbm4gaXN0IG1pciBrbGFyIC4uLiB1bmQgZWdhbCEKCjYpIERpZSBBcmVuYSBpc3QgbmFjaCB3aWUgdm9yIGFscyBPcnQgZGVyIEtyYWVmdGVtZXNzdW5nIGdlZGFjaHQuCkR1ZWxsZSB1bmQgc3Bhbm5lbmRlIEthZW1wZmUgZ2VnZW4gR2xhZGlhdG9yZW4uICdXZXIgc2NoYWZmdCBkaWUKR2xhZGlhdG9yZW4gYW0gc2NobmVsbHN0ZW4gdW5kIG1pdCBkZW0gd2VuaWdzdGVuIFZlcmx1c3QgYW4KTGViZW5zcHVua3Rlbj8nIGhhbHRlIGljaCBuaWNodCBpbSBnZXJpbmdzdGVuIGZ1ZXIgc3Bhbm5lbmQuCk9rYXksIG1laW5lIE1laW51bmcsIGFiZXIgaWNoIGthbm4gaW4gZGVyIEFyZW5hIGphIGF1Y2ggbWFjaGVuIHdhcwppY2ggd2lsbCA6LSkuIERpZXNlciBTZWl0ZW5oaWViIG11c3N0ZSBzZWluIC4uLgoKU28sIG51biBpc3Qgd2llZGVyIGVpbiBsYW5nZXIgQXJ0aWtlbCB2b2xsZXIgU2NocmVpYi0gdW5kIEdyYW1tYXRpay0KZmVobGVyIGZlcnRpZyB1bmQgbWFuY2hlIExldXRlIHNpbmQgbm9jaCBnZW5hdXNvIGJvZXNlIGF1ZiBtaWNoIHdpZQp2b3JoZXIuIE5hamEsIHdpZSBzYWdlbiB3aXIgSXRhbGllbmVyIGRvY2g6IEMnZXN0IGxhIHZpZSEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBcmVuYSAoS2V0b3MsICA4LiBOb3YgMTk5NSwgMTU6NDA6MTMpOgojISBybj1EdXJpYW4gcnQ9ODE1ODMzNjM3CldlbmlnZXIgRVAgaW4gZGVyIEFyZW5hOgpWZXJ0ZWlsIGRvY2ggZWluZmFjaCBrZWluZSBFUCdzIHdlbm4gZWluZXIgZGllIFF1ZXN0IHNjaG9uIGhhdC4KLSBrZXRvcyAtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBcmVuYSAoRnl0LCAgOC4gTm92IDE5OTUsIDE4OjI0OjU2KToKIyEgcm49RHVyaWFuIHJ0PTgxNTgzMzYzNwpPY2ggRHVyaWFuLi4uIGljaCB3YXIgZ2FyIG5pY2h0IHNvIHNhdWVyLCBkYXNzIG1hbiBpbiBkZXIgQXJlbmEgbmljaAptZWhyIEVQIHNjaHJ1cHBlbiBrYW5uIDopIEljaCBoYWIgZGllIG5hZW1saWNoIG51ciBmdWVyIGRlbiBsZXR6dGVuCkd1cnQgbWFsIGRyaW5nZW5kIGluIGRlciBaZWl0IGdlYnJhdWNodCwgd28gaWNoIG5vY2ggJ24gV2VnaGllci0Kc3Rpcm5iYW5kIGhhdHRlIHVuZCBpY2ggd2VnZW4gTXVycGh5IGF1ZiduIFJlYm9vdCBnZWZhc3N0IHdhciA6KQpVbmQgZGEgd2FyIG1pcidzIG5pY2ggZWdhbCwgb2IgaWNoIGZ1ZXIgZGllIDIwIE1pbywgZGllIGljaCBrdXJ6CnZvcmhlciBiZWkgSHlkcmEgdW5kIFdlZ2hpZXIgaW4gNjAgb2RlciBpbiAzMCBTdHVuZGVuIG1hY2guCklyZ2VuZHdvIGlzIG1pciBuYWVtbGljaCBhdWNoIG1laW5lIFplaXQgZnVlciBkZXJhcnRpZ2VzIFNpbm5sb3MtCm1ldHplbG4genUgc2NoYWRlIDopIC4uLgpPZWhtLi4uIGRpZSBzb25zdGlnZW4gQXJndW1lbnRlOiB3ZXIgZGllIEdsYWRpcyBzY2hhZmZ0LCBzY2hhZmZ0IGF1Y2gKbmVuIEdhcmRld2FlY2h0ZXIsIHVuZCBrYW5uIGRhbWl0IDEwMDAwIEVwIHdlbmlnZXIgdmVydHJhZ2VuLgpJY2ggaGFiIG5vY2ggbmllIHBlciBNb2RlbSBnZW11ZGRldCA6KSBCaW4gZG9jaCBnZWluIEdvbGRlc2VsLi4uCkZ5dC4KT2VobS4uIHdlbm4gZGFzIGpldHp0IHp1c2FtbWVuaGFuZ3Nsb3MgZXJzY2hlaW50LCBzbyBtYWcgZGFzIGRhcmFuCmxpZWdlbiwgZGFzIGVzIGRhcyBpc3QsIGljaCBoYWIgaW1tZXIgbWFsIHdvYW5kZXJzaGluZ2VzY2hhdXQgYmVpbQpzY2hyZWliZW4gOikgdW5kIGthbm4gaW1tZXIgbm9jaCBuaWNodCBtaXQgZGVtIEVkaXRvciBoaWVyIHVtZ2VoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBBcmVuYSAoRnl0LCAgOC4gTm92IDE5OTUsIDE4OjI2OjIwKToKIyEgcm49Rnl0IHJ0PTgxNTg1MTQ5NgouLi4gZGllIGljaCBrdXJ6IHZvcmhlciBiZWkgSHlkcmEgdW5kIFdlZ2hpZXIgaW4gZGVuIE5pY2h0d3Vlc3RlbnNhbmQKZ2VzZXR6dCBoYWJlLCBpbiA2MC4uLgpTb3JyeSA6KQpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBBcmVuYSAoRmFudWlkaG9sLCAgOC4gTm92IDE5OTUsIDE4OjQzOjAxKToKIyEgcm49Rnl0IHJ0PTgxNTg1MTU4MAogICAgICAgICAgICAgICBIdWh1CgpJY2ggbXVzcyBhdWNoIGt1cnogbWFsIHdhcyBrbGFyc3RlbGxlbjoKSWNoIGJpbiBkaXIgbmljaHQgYm9lc2UsIER1cmlhbi4gSWNoIHZlcnN0ZWggZGVpbmUgRWluc3RlbGx1bmcgYXVjaCwKYmluIGphIHNlbGJzdCBvZnQgZ2VudWcgd2l6YXJkIGluIGFuZGVyZW4gTXVkcy4gSWNoIGZpbmRlIGVzIGhhbHQKbnVyIHNjaGFkZSwgZGFzcyBkaWVzZSBXZXR0a2FlbXBmZSBpbiBkZXIgbmV1ZW4gQXJlbmEgbmljaHQgbWVocgp6d2lzY2hlbiB2ZXJzY2hpZWRlbmVuIEdpbGRlbiBnZWhlbiB3aXJkLiAod2VpbCBkaWUgYW5kZXJlbiBHaWxkZW4KaW0gVmVyZ2xlaWNoIHp1IGRlbiBBYmVudGV1cmVybiB6dSBzdGFyayBzaW5kKQoKICAgICAgdHNjaG9lICAgICAgICBDYXJhZGhyYXMgKnd1c2NoZWwgRHVyaWFuKgpQUzogRGFzcyBkdSBlcyBuaWNodCBhbGxlbiByZWNodCBtYWNoZW4ga2FubnN0LCBkYSBoYXN0ZSByZWNodC4KICAgIFVuZCBkYXNzIGR1IGRpY2ggbmljaHQgZHJ1ZWJlciBhdWZyZWdlbiBzb2xsdGVzdCAodW5kIGVzIGF1Y2gKICAgIHR1c3QpIGlzdCBhdWNoIHJpY2h0aWcKUFBTOiBEaWUgQXJlbmEgd2FyIGF1Y2ggc2Nob24gdm9yIEpvaGFubmEgaW50ZXJlc3NhbnQgKG5hY2ggd2lldmllbAogICAgIFNla3VuZGVuIGhhYmUgaWNoIHZvbiBkZW4gQW5tZWxkdW5nIGF1cyBQb3BleWUgdW1nZWxlZ3QpICpncmlucyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBBcmVuYSAoQ3VjaHVsbGluLCAgOC4gTm92IDE5OTUsIDE4OjUzOjE1KToKIyEgcm49RmFudWlkaG9sIHJ0PTgxNTg1MjU4MQoKQ2FyYWRocmFzIHNjaHJlaWJ0OgpQUFM6IERpZSBBcmVuYSB3YXIgYXVjaCBzY2hvbiB2b3IgSm9oYW5uYSBpbnRlcmVzc2FudCAobmFjaCB3aWV2aWVsCiAgICAgU2VrdW5kZW4gaGFiZSBpY2ggdm9uIGRlbiBBbm1lbGR1bmcgYXVzIFBvcGV5ZSB1bWdlbGVndCkgKmdyaW5zKgooeml0LiBlbmRlKQoKR2VuYXUgZGFydW0gZ2luZ3MgRHVyaWFuLgoKV2FydW0gbmljaHQgZWluZmFjaCBwcm8gU3BpZWxlciBudXIgZWluZW4gS2FtcGYgcHJvIFJlc2V0IHp1bGFzc2VuPyBEYW5uIGthbm4KamVkZXIgZnVlciBzaWNoIG5vY2ggZ3VnZ2VuLCB3aWVsYW5nZSBlciBicmF1Y2h0LCB1bSBkaWUgR2xhZGlzCm5pZWRlcnp1bWV0emVsbiAtIGFiZXIgbnVyIGhhbHQgbWF4aW1hbCBlaW5tYWwgcHJvIFJlc2V0LiBadXIgbm90IGF1Y2ggbnVyCmVpbm1hbCB0YWVnbGljaCwgd2VuIHN0b2VydCdzPwoKQ3VjaC4tICh2ZXJ0cml0dCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBBcmVuYSAoRnl0LCAgOC4gTm92IDE5OTUsIDE4OjU1OjQxKToKIyEgcm49Q3VjaHVsbGluIHJ0PTgxNTg1MzE5NQpIbSwgaWNoIGJpbiBmdWVyIENhcmFzIFZvcnNjaGxhZzogMCBFUCBhYiBkZW0gendlaXRlbiBNYWwuCkRhbWl0IHN0ZWxsdCBzaWNoIGtlaW5lciBhY2h0IFN0dW5kZW4gaW4gZGllIEFyZW5hLCB1bmQgd2VubiBtYW4KbWFsIGRyaW5nZW5kIHdhcyB0ZXN0ZW4gd2lsbCwgYnJhdWNodCBtYW4gbmljaHQgYmlzIHp1bSBuYWVjaHN0ZW4KUmVzZXQgenUgd2FydGVuLgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaXN2ZXJrYWV1ZmVyIChSYWZmaSwgIDEuIERleiAxOTk1LCAxOTowMDozNyk6Cj4gdW50IGVpc3ZlcmthZXVmZXIKRHUgc2llaHN0IGVpbmVuIEVpc3ZlcmthZXVmZXIgbWl0IGVpbmVtIEVpc3dhZ2VuLCBNSVRURU4gaW4gZGVyIFd1ZXN0ZS4KRXIgaXN0IGFic29sdXQgZml0LgpFciB0cmFlZ3QgYmVpIHNpY2g6CkVpbiBQZWx6YmV1dGVsLgoKRGFzIGluIGRlciBXdWVzdGUgZWluIGVpc3ZlcmthZXVmZXIgcnVtbGFldWZ0IGlzdCBqYSBndXQgKDo5KSAtIGFiZXIgd29mdWVyCmJyYXVjaHQgZGVyIGVpbmVuIFBlbHpiZXV0ZWwgPyAtIE9kZXIgaXN0IGRlciBTY2h3YWJlZG9haCBzbyAgYXVmZHJpbmdsaWNoID8KCipHUklOUyoKCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcmVuYSAuLi4gKER1cmlhbiwgIDYuIERleiAxOTk1LCAxMDoyNTozMCk6CgpIYWxsbyBMZXV0ZSwgSGFsbG8gRnl0IDotKQoKSGF0dGUgaWNoIGVpZ2VudGxpY2ggc2Nob24gZXJ3YWVobnQsIGRhc3MgbWFuIHBybyBSZXNldCBlaW5tYWwgd2llZGVyCmRpZSBHbGFkaWF0b3JlbiB1bW5pZXRlbiBrYW5uPyBOZWluPyBEb2NoLCBtYW4ga2FubiA6LSkgQWxsZXJkaW5ncwp3ZXJkZW4gc29sY2hlIEFrdGlvbmVuIG5pY2h0IG1laHIgZHVyY2ggZGVuIEJvdGVuIGplZGVtIG1pdGdldGVpbHQsCnVuZCBlcyBrb21tdCBhbSBTY2hsdXNzIGF1Y2gga2VpbmUgRXJmb2xnc21lbGR1bmchIERpZXMgc29sbHRlCnZpZWxsZWljaHQgYXVjaCB3aWVkZXIgZWluIEFucmVpeiBmdWVyIGFsbGUgc2VpbiwgZGllIGRpZSBBcmVuYQppZ25vcmllcmVuIQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIGt1cnpmcmlzdGlnICg/Pz8pIGdlc3BlcnJ0IC4uLiAoRHVyaWFuLCAxOS4gSmFuIDE5OTYsIDE4OjMyOjIyKToKCk1vaW4hCgpFcyBpc3QgYmFsZCBzb3dlaXQgLi4uIGhvZmZlIGljaCAuLi4gaWNoIGhhYmUgbWFsIHdpZWRlciBhbiBkZW4gVW1iYXUtCmFyYmVpdGVuIGRlciBBcmVuYSAoU2VoZXJ3ZXR0YmV3ZXJiKSB3ZWl0ZXIgZ2VtYWNodCwgdW5kIGJpbiB3ZWl0ZXIgYWxzCmljaCBkYWNodGUgOi0pIERhaGVyIGhhYmUgaWNoIGRpZSBBcmVuYSAobWFsIHdpZWRlcj8/KSBnZXNwZXJydCBiaXMKaWNoIGRpZSBsZXR6dGVuIFRlc3RzIGR1cmNoZ2VmdWVocnQgaGFiZS4gQXVzc2VyZGVtIHdpbGwgaWNoIGRpZQpHYWxlcmllIChuYWNoIDIgSmFocmVuKSBlbmRsaWNoIG1hbCByZXN0YXVyaWVyZW4gOi0pIFNvbGx0ZSBpY2ggd2llZGVyCmVpbmVuIER1cmNoaGFlbmdlciBiZWtvbW1lbiwgc2NobGllc3NlIGljaCBoYWx0IGt1cnpmcmlzdGlnIGRpZSBhbHRlCkFyZW5hIHdpZWRlciBhbiwgYWJlciBkYXMgd2lsbCBpY2ggbWFsIG5pY2h0IGhvZmZlbiEKCmltIE5hbWVuIGRlciBNR0FCRwoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIHdpZWRlcmVyb2VmZm5ldCEgKER1cmlhbiwgMjQuIEphbiAxOTk2LCAxNTowMzowMSk6CgogICAgICAgICAgICBORVVFIEFUVFJBS1RJT04gSU4gREVSIEdST1NTRU4gS0FNUEZBUkVOQQogICAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKRW5kbGljaCBpc3QgZXMgc293ZWl0LiBFcyBoYXQgbGFuZ2UgZ2VkYXVlcnQsIGRvY2ggbnVuIGVuZGxpY2ggaXN0IGVzCnNvd2VpdC4gV2lyIHNpbmQgc2VociBzdG9seiwgSWhuZW4gZGllIG5ldWVzdGUgQXR0cmFrdGlvbiBkZXIKS2FtcGZhcmVuYSBwcmFlc2VudGllcmVuIHp1IGtvZW5uZW46CgoKICAgICAgICAgICAgICAgICBERVIgR1JPU1NFIFNFSEVSV0VUVEJFV0VSQiAhIQoKV29sbHRlbiBTaWUgc2ljaCBuaWNodCBpbW1lciBzY2hvbm1hbCBtaXQgZGVuIGFuZGVyZW4gU2VoZXJuIG1lc3Nlbj8KV29sbHRlbiBTaWUgbmljaHQgc2Nob24gaW1tZXIgbWFsIHZvciBVbmVyYml0dGxpY2hlbiBzdGVoZW4/IFdvbGx0ZW4KU2llIHNjaG9uIGltbWVyIGZ1ZXIgZWluIGdyb3NzZXMgUmlzaWtvIG1pdCB2aWVsIFJ1aG0gdW5kIEVocmUgYmVsb2hudAp3ZXJkZW4/IFdhcmVuIElobmVuIGRpZSBHbGFkaWF0b3JlbiB1bSBIZXJrdWxlcyBoZXJ1bSBzY2hvbiBsYW5nZQpuaWNodCBtZWhyIHN0YXJrIGdlbnVnPyBEYW5uIGhhYmVuIHdpciBqZXR6dCBlbmRsaWNoIGRpZSBMb2VzdW5nIGZ1ZXIKU2llIQoKV29ydW0gZ2VodCBlcz8KLS0tLS0tLS0tLS0tLQpFcyBnZWh0IGRhcnVtLCBkYXMgaXN0IGVpZ2VudGxpY2ggbmljaHRzIE5ldWVzLCBkZXIgUmVpaGUgbmFjaCBnZWdlbgpHbGFkaWF0b3JlbiBhbnp1dHJldGVuIHVtIHNpY2ggbWl0IGlobmVuIGltIEthbXBmIGF1ZiBMZWJlbiB1bmQgVG9kIHp1Cm1lc3Nlbi4gRGllIG5hZWNoc3RlIEdsYWRpYXRvciBpc3QgZGFiZWkgaW1tZXIgZXR3YXMgc3RhZXJrZXIgYWxzIGRlcgp2b3JoZXJpZ2UuCgpXYXMgaXN0IG5ldT8KLS0tLS0tLS0tLS0KTmV1IGlzdDogZXMgZ2lidCBrZWluZW4gc3RhZXJrc3RlbiBHbGFkaWF0b3IsIGtlaW5lbiBPYmVyZ2xhZGlhdG9yCm1laHIsIHNvbmRlcm4gZXMgZ2lidCBpbW1lciB3aWVkZXIgbm9jaCBlaW5lbiBTdGFlcmtlcmVuLiBEYWJlaSBzaW5kCmRpZSBlaW56ZWxuZW4gR2xhZGlhdG9yZW4gYXVmc3RlaWdlbmRlbiBTdHVmZW4genVnZW9yZG5ldC4KCldhcyBpc3QgZGVyIFdldHRiZXdlcmI/Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGVyIFdldHRiZXdlcmIgaXN0OiB3ZXIgYmVzaWVndCBkaWUgaG9lY2hzdGUgU3R1ZmU/IFdlciByaXNraWVydApldHdhcywgd2VyIHRyYXV0IHNpY2ggbm9jaCBlaW5lIFN0dWZlIG1laHI/CgpJc3QgZGFzIGdlZmFlaHJsaWNoPwotLS0tLS0tLS0tLS0tLS0tLS0tCk5hdHVlcmxpY2ghCgpXYXMgaXN0IGRlciBHZXdpbm4/Ci0tLS0tLS0tLS0tLS0tLS0tLQpSdWhtIHVuZCBBbnNlaGVuIQoKV2FzIG11c3MgaWNoIHR1bj8KLS0tLS0tLS0tLS0tLS0tLQpEZXIgV2V0dGJld2VyYiB3aXJkIHdpZSBhbGxlcyBpbiBkZXIgQXJlbmEgaW4gZGVyIEFubWVsZHVuZwphbmdlbWVsZGV0LiBEYXJhdWZoaW4gaGFiZW4gYWxsZSBhbmRlcmVuIFNwaWVsZXIgR2VsZWdlbmhlaXQgenVyIEFyZW5hCnp1IGtvbW1lbiB1bSBkZW4gU2NoYXVzcGllbCBiZWl6dXdvaG5lbi4gV2VubiBtYW4gZGllIG5hZWNoc3RlIFN0dWZlCnNpY2hlciBuaWNodCBtZWhyIHZlcnN1Y2hlbiBtb2VjaHRlLCBzbyBrYW5uIG1hbiBkZW4gV2V0dGJld2VyYiBkb3J0CmF1Y2ggd2llZGVyIGJlZW5kZW4uCgpaRUlHRU4gU0lFIEpFVFpUIElIUkUgU1RBRVJLRSwgTkVITUVOIFNJRSBKRVRaVCBURUlMIQoKICAgICAgICAgICAgICAgICAgICBJbSBOYW1lbiBkZXIgTUdBQkcKICAgICAgICAgICAoTW9yZ2VuR3JhdWVuQXJlbmFCZXRyZWliZXJHZXNlbGxzY2hhZnQpCgogICAgICAgICAgICAgICAgICAgICAgICAgIER1cmlhbgoKSGllciBub2NoIGVpbiBIaW53ZWlzIHdlZ2VuIGRlbSBCb3RlbjogYXVzIGFsdGVuLCBiZWthbm50ZW4gdW5kCmluendpc2NoZW4gaW4gZGllc2VyIEZvcm0gbmljaHQgbWVociB2b3JsaWVnZW5kZW4gR3J1ZW5kZW4sIGlnbm9yaWVyZW4KdmllbGUgTGV1dGUgZGVuIEJvdGVuIGRlciBBcmVuYS4gRWluIGdlbmVyZWxsZXMgaWdub3JpZXJlbiBkZXMgQm90ZW4KaGFsdGVuIHdpciBuYWNoIHdpZSB2b3IgZnVlciBVbnNpbm4uIFdlbm4gU2llIGRlbiBCb3RlbiBnZW5lcmVsbAppZ25vcmllcmVuLCB3ZXJkZW4gU2llIGF1Y2ggbmljaHQgdWViZXIgVGVpbG5laG1lciBhbSBuZXVlbgpTZWhlcndldHRiZXdlcmIgaW5mb3JtaWVydC4gV2lyIG1hY2hlbiBhbiBkaWVzZXIgU3RlbGxlIG5vY2htYWwgYXVmCmRpZSBNb2VnbGljaGtlaXRlbiBhdWZtZXJrc2FtLCBnZXppZWx0IE5hY2hyaWNodGVuIGRlcyBCb3RlbiB6dQppZ25vcmllcmVuOgoKaWdub3JpZXJlIGFyZW5hOiAKCkRhbWl0IGlnbm9yaWVyZW4gU2llIGFsbGVzLCB3YXMgdm9uIGRlciBBcmVuYSBrb21tdCwgc3BlemllbGwgZGVuCkJvdGVuLiBTbyB3ZXJkZW4gU2llIHVlYmVyIG5pY2h0cywgd2FzIGluIGRlciBBcmVuYSBwYXNzaWVydCwKaW5mb3JtaWVydC4KCmlnbm9yaWVyZSBhcmVuYS5nbGFkaWF0b3I6CgpEYWJlaSBpZ25vcmllcmVuIFNpZSBOYWNocmljaHRlbiwgd2VubiBzaWNoIGplbWFuZCB6dXIKT2JlcmdsYWRpYXRvcnF1ZXN0IGFuZ2VtZWxkZXQgaGF0LiBXZW5uIHNpY2ggTGV1dGUgZWluIHp3ZWl0ZXMgbWFsCmFubWVsZGVuIChuYWNoZGVtIHNpZSBkaWUgUXVlc3QgYmVyZWl0cyBlaW5tYWwgZ2Vsb2VzdCBoYWJlbiksIHdpcmQKZGVyIEJvdGUgbmV1ZXJkaW5ncyBuaWNodCBtZWhyIGluZm9ybWllcmVuLCBlZ2FsIG9iIFNpZSBpaG4KaWdub3JpZXJlbiwgb2RlciBuaWNodC4KCmlnbm9yaWVyZSBhcmVuYS5kdWVsbGU6CgpTaWUgd2VyZGVuIGJlaSBEdWVsbGFubWVsZHVuZ2VuIG5pY2h0IG1laHIgaW5mb3JtaWVydC4KCmlnbm9yaWVyZSBhcmVuYS5zZWhlcndldHRiZXdlcmI6CgpXZW5uIHNpY2ggamVtYW5kIHp1bSBTZWhlcndldHRiZXdlcmIgYW5tZWxkZXQsIHdlcmRlbiBTaWUgbmljaHQKaW5mb3JtaWVydCEKClVtIHZpZWxlIFp1c2NoYXVlciBhbiBkZW4gQXR0cmFrdGlvbmVuIHp1IGdld2FlaHJsZWlzdGVuLCBiaXR0ZSB3aXIKYWxsZSwgZGllIGRlbiBCb3RlbiBpZ25vcmllcmVuLCBkaWVzIG5vY2ggZWlubWFsIHp1IHVlYmVyZGVua2VuIQoKVmllbGVuIERhbmshCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFyZW5hIHdpZWRlcmVyb2VmZm5ldCEgKER1cmlhbiwgMjQuIEphbiAxOTk2LCAxNToyMjozNyk6Cn4jISBybj1EdXJpYW4gcnQ9ODIyNDkyMTgxCn4jISB0aWQ9ODIyNDkyMTgxCkVzIHd1cmRlIG5vY2ggdmVyZ2Vzc2VuIHp1IGVyd2FlaG5lbjoKCkluIGRlciBuZXUgdW1nZWJhdXRlbiBHYWxlcmllIGRlciBBcmVuYSAobmFjaCBkZW0gRWluZ2FuZyBuYWNoIHVudGVuKQprYW5uIG1hbiBudW4gaGF1ZmVud2Vpc2UgU3RhdGlzdGlrZW4gYWJydWZlbi4gRGllc2UgU3RhdGlzdGlrZW4gd3VyZGVuCmxlaWRlciBub2NoIG5pY2h0IHZvbiBBbmZhbmcgYW4gZ2VmdWVocnQsIGRlc2hhbGIgd3VuZGVydCBFdWNoIGJpdHRlCm5pY2h0IC4uLiBzaWUgaGFlbmdlbiBjYS4gZWluIGRyZWl2aWVydGVsIEphaHIgZGVyIEFyZW5hIGhpbnRlcmhlci4KVmllbGxlaWNodCB1cGRhdGUgaWNoIHNpZSBtYWwsIGFiZXIgZGFzIGJlZGV1dGV0IFNFSFIgdmllbCBBcmJlaXQgLi4uCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcmVuYSB3aWVkZXJlcm9lZmZuZXQhIChGeXQsIDI0LiBKYW4gMTk5NiwgMjE6NTA6NTYpOgp+IyEgcm49RHVyaWFuIHJ0PTgyMjQ5MzM1Nwp+IyEgdGlkPTgyMjQ5MjE4MQoKRGFua2UsIERhbmNlciwgZnVlciBkZW4gVW1iYXUgZGVyIEFyZW5hLi4uCgpFbmRsaWNoIHdpZWRlciB3YXMgbG9zIGluIGRlciBuYWVoZSBkZXIgU3RyZXVzYW5kbGFnZXJzdGVsbGUuCgpGeXQuIDopKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQXJlbmEgd2llZGVyZXJvZWZmbmV0ISAoQ2FyYWRocmFzLCAyNS4gSmFuIDE5OTYsIDA5OjUyOjU5KToKfiMhIHJuPUZ5dCBydD04MjI1MTY2NTYKfiMhIHRpZD04MjI0OTIxODEKSm8sIHNlaHIgaHVlYnNjaCBnZW1hY2h0IGF1Y2gsIGF1Y2ggd2VubiBpY2ggamV0enQgc2Nob24gYmVpbQp2aWVydGVuIG1hbCB2ZXJnZXNzZW4gaGFiZSBkaWUgR2xhZGlzIGFuenVrdWNrZW4uIE5hIGphLCBTZWhlcgprdWNrZW4gaGFsdCBkb2NoIG5pY2h0IGhpbi4gOikKV2FyZW4gbnVyIGVpbiBwYWFyIEdsYWRpcyB6dSB3ZW5pZywgaG0/ICpncmlucyBEdXJpYW4gZnJlY2ggYW4qCk9oIGRlciBBcm1lLCBzbyBzY2huZWxsIHZlcmdlc3MgaWNoIGRhcyBuaWNodCB3aWUgZXIgZ2VzdGVybgpiZWluYWhlIGVpbmVuIEhlcnphbmZhbGwgYmVrYW0uCgogICAgICAgdHNjaG9lCiAgICBDYXJhZGhyYXMgLSBoYXQgYmlzaGVyIGVyc3QgZGllIGVyc3RlbiA0IGdlc2NoYWZmdAogICAgICAgICAgICAgICAgJipeJSQlIyBBYmVudGV1cmVyIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChEdXJpYW4sIDI1LiBKYW4gMTk5NiwgMTE6MjE6MDUpOgpIYWxsbyB6dXNhbW1lbiEKCkxlaWRlciBiaW4gaWNoIG1pdCBtZWluZW4gR2xhZGlhdG9yZW4gaW0gZXJzdGVuIEFubGF1ZiBldHdhcyBhbSBaaWVsCnZvcmJlaWdlc2Nob3NzZW4uIFN0YXR0IGRhc3MgZGllIFNlaGVyIGlocmUgS2FtcGZrcmFmdCB2ZXJnbGljaGVuIGhhYmVuLApoYWJlbiBzaWUgaWhyZSBBdXNydWVzdHVuZ2VuIHZlcmdsaWNoZW4uIFVtIGRhcyB6dWt1ZW5mdGlnIHp1IHZlcm1laWRlbgp3ZXJkZSBpY2gsIGltbWVyLCB3ZW5uIG1pciBlaW4gb2JqZWt0IHp1IHN0YXJrIGVyc2NoZWludCwgZGllc2VzIE9iamVrdAppbiBkZXIgQXJlbmEgdmVyYmlldGVuIHVuZCBkZW4gU3BpZWxlciB3aWVkZXIgYXVzIGRlciBMaXN0ZSBkZXIgYmVzdGVuClNlaGVyIHN0cmVpY2hlbi4KCkFscyBlcnN0ZXMgaGF0IGVzIGluIGRpZXNlbSBadXNhbW1lbmhhbmcgZGllIGdyYXVlbiBTdGVpbmUgZXJ3aXNjaHQsIGRpZQpvZmZlbnNpY2h0bGljaCBkaWUgR2xhZGlhdG9yZW4gZGVybWFzc2VuIGxhZWhtZW4sIGRhc3MgbWFuIGJlaQpkZW5lbiBhdWNoIGdsZWljaCBkaWUgV2FmZmUgbmVobWVuIGtvZW5udGUuIE1pciBzaW5kIGluIGRpZXNlbSBadXNhbW1lbi0KaGFuZyB6d2VpIFNwaWVsZXIgYmVrYW5udCwgZGllIGRpZXNlIFN0ZWluZSBiZW51dHp0IGhhYmVuLCB1bSBpbiBkZXIKUmFuZ2xpc3RlIG5hY2ggdm9ybmUgenUga29tbWVuLiBJY2ggaGFiZSBiZXJlaXRzIG1pdCBlaW5lbSBnZXNwcm9jaGVuLAptaXQgZGVtIGFuZGVyZW4gc3ByZWNoZSBpY2ggbm9jaC4gRGFubiB3ZXJkZSBpY2ggc2llIGF1cyBkaWVzZXIgTGlzdGUKaGVyYXVzIG5laG1lbiB1bmQgc2llIGtvZW5uZW4gc2ljaCBuZXUgaG9jaCBrYWVtcGZlbi4KCkljaCBiaXR0ZSBhbGxlIFNlaGVyLCBtaXIgRUhSTElDSCAodW5kIHZvbiBTZWhlcm4gZXJ3YXJ0ZSBpY2ggRWhybGljaGtlaXQpCnp1IHNhZ2VuLCBvYiBzaWUgZ3JhdWUgU3RlaW5lIGJlbnV0enQgaGFiZW4sIG9kZXIgbmljaHQuIEF1Y2ggd2VubiBtYW5jaGUKZGFzIHZpZWxsZWljaHQgYW5kZXJzIHNlaGVuLCBiZXRyYWNodGUgaWNoIHNpZSBhbHMgVmVyZmFlbHNjaHVuZyBkZXIKS2FtcGZrcmFmdC4KCk9oIG1hbm4sIGFlaG0gLi4uIGRlciBBcnRpa2VsIGtsaW5ndCBlcmhlYmxpY2ggZXJuc3RlciBhbHMgZXIgZ2VtZWludAppc3QuIE5hamEsIElociB3aXNzdCBzY2hvbiAuLi4gOi0pCgppbSBOYW1lbiBkZXIgTUdBQkcKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChEdXJpYW4sIDI1LiBKYW4gMTk5NiwgMTY6Mjg6MzgpOgp+IyEgcm49RHVyaWFuIHJ0PTgyMjU2NTI2NQp+IyEgdGlkPTgyMjU2NTI2NQpJY2ggbWFsIHdpZWRlciAuLi4gOi0pCgpOaWNodCBnYW56IHVuZXJ3YXJ0ZXQgYmluIGljaCBlaW4gd2VuaWcgaW4gZGllIFNjaHVzc2xpbmllIGFuZ2VzaWNodHMgbWVpbmVyCidTdGVpbi1lbnRzY2hlaWR1bmcnIGdlcmF0ZW4uIERhIGljaCBhYmVyIG5pY2h0IG1pdCBqZWRlbSBTZWhlciBlaW56ZWxuCnJlZGVuIG1vZWNodGUsIG51biBkaWVzZXIgQXJ0aWtlbC4KCkFsc28gdW0gZXMga3VyeiB6dSBtYWNoZW4gKGRhbm4gaWNoIGVuZGxpY2ggd2llZGVyIGFuIG1laW5lciBEaXBsb21hcmJlaXQKd2VpdGVyIG1hY2hlbiA6LSkpLCBpbSBNb21lbnQgYmxlaWJ0IGVzIHNvIHdpZSBlcyBpc3QuIEFiZXIgZGFzIGlzdCBuaWNodApkYXMgbGV0enRlIFdvcnQuIEljaCB3ZXJkZSBtaWNoIGhpZXIgdW5kIGRhIG5vY2ggc2NobGF1IG1hY2hlbiB1bmQgZXZ0bC4Kd2llZGVyIGFsbGVzIGVybGF1YmVuLiBXZW5uIGRlbSBzbyBpc3QsIGdpYnQgZXMgYXVjaCB3aWVkZXIgZGVuIGFsdGVuClNwaXR6ZW5yZWl0ZXIgOi0pIEljaCB3ZXJkZSBtaWNoIGRhbm4gc2Nob24gbWVsZGVuIC4uLiBpbSBNb21lbnQgYnJhdWNoZQppY2ggZXJzdG1hbCBSdWhlIC4uLgoKaWNoIHdlcmRlIGJlc3RpbW10IHZvbiBTdGVpbmVuIHRyYWV1bWVuIGRpZXNlIE5hY2h0IC4uLgoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChDYXJhZGhyYXMsIDI1LiBKYW4gMTk5NiwgMTc6MzU6MzMpOgp+IyEgcm49RHVyaWFuIHJ0PTgyMjU4MzcxOAp+IyEgdGlkPTgyMjU2NTI2NQpBbHNvIGljaCBmYWVuZGUgZXMgYmVzc2VyLCB3ZW5uIGRpZSBTdGVpbmUgYXVzc2VuIHZvciBibGVpYmVuIHVuZCBuaWNodAppbiBkZXIgQXJlbmEgenVtIEVpbnNhdHoga2FlbWVuLiBNaXQgU3RlaW5lbiBrYW5uIGF1Y2ggQ2VsZWJkaWwgZXMgYmlzCnp1ciBOdW1tZXIgMjAgc2NoYWZmZW4sIGVyIG11ZXNzdGUgbnVyIGdlbnVlZ2VuZCBkYXZvbiBzYW1tZWxuLgpFaWdlbnRsaWNoIHdhciBkZXIgU2lubiBkZXMgU2VoZXJ3ZXR0YmV3ZXJicyBhYmVyIGRvY2ggbWFsLCBkYXNzIG1hbgp2ZXJnbGVpY2hlbiBrYW5uIHdlbGNoZSBHaWxkZSBhdWYgd2VsY2hlbSBMZXZlbCBkaWUgaG9lY2hzdGUgaXN0CnVuZCB3ZXIgYW0gZ2VzY2hpY2t0ZXN0ZW4gbWl0IGRpZXNlbiBGYWVoaWdrZWl0ZW4gdW1nZWhlbiBrYW5uLgoKSGFldHRlIG5vY2ggendlaSB3ZWl0ZXJlIFZvcnRlaWxlOiBEdXJpYW4gbXVlc3N0ZSBuaWNodCBzbyB2aWVsZQpHbGFkaWF0b3JlbiBiYXVlbiAqendpbmtlciogdW5kIGVyIG11ZXNzdGUgbmljaHQgZGllIEVQIGZ1ZXIgZGllCkdsYWRpYXRvcmVuIHJ1bnRlcnNldHplbiwgd2VpbCBkaWUgZXJzdGVuIG5vY2ggbmljaHQgc29vbyB2aWVsCkVQIGdlYmVuIHdpZSBkaWUgc3BhZXRlci4uLgoKICAgIFVuZCB0c2NodWVzcwogIENhcmFkaHJhcyAtIGhhZXR0ZSBtYWwgJ2dlZ2VuIFNwaWVsZXIvU2VoZXInIGVudHNjaGllZGVuCiAgICAgICAgICAgICAgYXVzIEdydWVuZGVuIGRlciBHZXJlY2h0aWdrZWl0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChTY2hydW1wZmksIDI1LiBKYW4gMTk5NiwgMTg6MDc6MTApOgp+IyEgcm49RHVyaWFuIHJ0PTgyMjU2NTI2NQp+IyEgdGlkPTgyMjU2NTI2NQpIbW0sIHplaWNobmV0IHNpY2ggZWluIGd1dGVyIFNlaGVyIG5pY2h0IGF1Y2ggZGFkdXJjaCBhdXMsIGRhc3MgZXIgd2Vpc3Mgd2llCnVuZCB3byBtYW4gc2ljaCBndXRlIFdhZmZlbiB1bmQgZ3V0ZSBBdXNydWVzdHVuZyBiZXNvcmd0PwpTY2hydW1wZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChQcmVkYXRvciwgMjUuIEphbiAxOTk2LCAxODozMzoyOCk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODIyNTg5NjMwCn4jISB0aWQ9ODIyNTY1MjY1ClNpY2hlciwgYWJlciBtaXQgNTAgc3RlaW5lbiBpbSBnZXBhZWNrIGlzdCBqYSB3b2hsIGZhc3QgYWxsZXMgaW0gbWcKcGxhdHR6dW1hY2hlbiwgZGF6dSBicmF1Y2h0IG1hbiBkZW4gc2VoZXJ3ZXR0YmV3ZXJiIG5pY2h0CmRlciBzb2xsdGUgZWhlciBkYXp1IHNlaW4sIGRpZSByZWluZSBrYW1wZmtyYWZ0IHp1IHZlcmdsZWljaGVuLCB1bmQgbmljaHQgc28KZ2VkYWNodCBzZWluLCBkYXNzIGRlciwgZGVyIGFtIG1laXN0ZW4gc3RlaW5lIHVuZCBhbmRlcmUgYXJ0aWxsZXJpZSBtaXQgc2ljaApydW10cmFlZ3QsIGRhbm4gZ2FueiB2b3JuIHN0ZWh0CgpQcmVkIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFdHdhcyBhbSBaaWVsIHZvcmJlaSAuLi4gKFRheiwgMjUuIEphbiAxOTk2LCAxODo0NjowOCk6Cn4jISBybj1QcmVkYXRvciBydD04MjI1OTEyMDgKfiMhIHRpZD04MjI1NjUyNjUKTnVyIGludGVyZXNzZXJoYWxiZXIuLi53YXMgemFlaGxzdCBEdSB6dXIgS2FtcGZrcmFmdCBlaW5lcyBTcGllbGVycz8KCkFuYWtpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChBc21vZGlzLCAyNS4gSmFuIDE5OTYsIDE5OjI0OjM3KToKfiMhIHJuPUR1cmlhbiBydD04MjI1ODM3MTgKfiMhIHRpZD04MjI1NjUyNjUKSG1tLCBpY2ggZGVua2UsIFNwZXppYWx3YWZmZW4genUgdmVyd2VuZGVuIGlzdCBmdWVyIGplZGVuIGRvY2gKbGVnaXRpbSwgd2VyIG5pY2h0IHdlaXNzLCB3aWUgZXIgZHJhbmtvbW10LCBkZXIgaGF0IGViZW4gcGVjaCBnZWhhYnQsCmFuc29uc3RlbiBrYWVtZW4gamEgYWxsZSBUb3AtS2FyYXRla2FzIGdsZWljaCB3ZWl0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEV0d2FzIGFtIFppZWwgdm9yYmVpIC4uLiAoWmlubywgMjkuIEphbiAxOTk2LCAxMzoyNjoxMik6Cn4jISBybj1EdXJpYW4gcnQ9ODIyNTgzNzE4Cn4jISB0aWQ9ODIyNTY1MjY1CgpEaWVzZXIgV2V0dGJld2VyYiBtYWNodCBlaW5lIGdlbmF1ZSBEZWZpbml0aW9uIGRlcyBCZWdyaWZmcyAnc3RhZXJrc3RlcgpTZWhlcicgZXJmb3JkZXJsaWNoLiBVbSBoZXJhdXN6dWJla29tbWVuLCB3ZXIgdm9uIGRlciBLYW1wZmtyYWZ0IGhlciBkZXIKYmVzdGUgU2VoZXIgaXN0LCBicmF1Y2hlbiB3aXIga2VpbmUgQXJlbmEsIGRlbm4gZGEga29lbm5lbiB3aXIgZWluZmFjaCBkaWUKVG9wLUxpc3RlIGRlciBLYXJhdGVnaWxkZSB1ZWJlcm5laG1lbiwgZGVubiBkaWUgc3RhZXJrc3RlbiBLYXJhdGVrYXMgc2luZAplaW5mYWNoIG1hbCB2aWVsIHN0YWVya2VyIGFscyBBbmdlaG9lcmlnZSBhbmRlcmVyIEdpbGRlbi4KQW5kZXJlcnNlaXRzIHplaWd0IHNpY2ggaW0gbm9ybWFsZW4gS2FtcGZnZXNjaGVoZW4sIGRhc3MgbWl0IGRlciBlbnRzcHJlLQpjaGVuZGVuIEF1c3J1ZXN0dW5nIGF1Y2ggZWluIE1pdGdsaWVkIGVpbmVyIGFuZGVyZW4gR2lsZGUgQmVhY2h0bGljaGVzCmxlaXN0ZW4ga2FubiwgdW5kIGplIG1laHIgdmVyc2NoaWVkZW5lIGd1dGUgVGVpbGUgbWFuIGtlbm50LCBkZXN0byB3ZWl0ZXIKa29tbXQgbWFuLiBEZXNoYWxiIGRlbmtlIGljaCwgZGFzcyBkZXIgc3RhZXJrc3RlIFNlaGVyIGRlciBpc3QsIGRlciBzaWNoIGFtCmJlc3RlbiBhdXNrZW5udCB1bmQgZGVzaGFsYiB2aWVsZSBFeHRyYS1XYWZmZW4gZWluenVzZXR6ZW4gdmVyc3RlaHQuCkRpZXMgZnVlaHJ0IGltIFNlaGVyd2V0dGJld2VyYiBqZWRvY2ggenUgZGVtIFByb2JsZW0sIGRhc3MgbWFuIGR1cmNoIGRhcwpIb3J0ZW4gZWluZXMgZ3V0ZW4gR2VnZW5zdGFuZHMgZmFzdCBiZWxpZWJpZyB3ZWl0IGtvbW1lbiBrYW5uLCBvaG5lIGRhc3MgbWFuCmRhYmVpIFVlYmVycmFnZW5kZXMgbGVpc3RlbiBtdXNzICh6LkIuIGRpZSBncmF1ZW4gU3RlaW5lKS4KVW0gZGllc2VzIFByb2JsZW0genUgbG9lc2VuLCBoYWx0ZSBpY2ggZXMgZnVlciBtb2VnbGljaCwgZGFzcyBtYW4gendhcgpwcmluemlwaWVsbCBhbGxlIFNwZXppYWxnZWdlbnN0YWVuZGUsIGRpZSBkaWUgS2FtcGZrcmFmdCB2ZXJiZXNzZXJuIHVuZCB2b24KZGVyIEludGVsbGlnZW56IGRlcyBTZWhlcnMgemV1Z2VuLCB6dWxhZXNzdCwgYWxsZXJkaW5ncyBtaXQgZGVyIE1hc3NnYWJlLApkYXNzIGplZGVyIGRpZXNlciBHZWdlbnN0YWVuZGUgbnVyIGJlaSBlaW5lbSBHbGFkaWF0b3IgYW5nZXdhbmR0IHdlcmRlbgpkYXJmLiBEYW5uIGthbm4gbWFuIHouQi4gbWl0IEhpbGZlIGVpbmVzIGdyYXVlbiBTdGVpbmVzIGVpbmVuIEdsYWRpYXRvcgphdXNzZXIgR2VmZWNodCBzZXR6ZW4sIGFiZXIgYmVpbSBuYWVjaHN0ZW4gbXVzcyBtYW4gc2ljaCB3YXMgbmV1ZXMgZWluZmFsbGVuCmxhc3Nlbi4gU28gaGFiZW4gZGllIExldXRlLCBkaWUgc2ljaCBhbSBiZXN0ZW4gYXVza2VubmVuLCBpbW1lciBtYWwgZWluZQpDaGFuY2UsIG5hY2ggdm9ybiB6dSBrb21tZW4sIHVuZCB0cm90emRlbSBnZWh0IGRhcyBnYW56ZSBuaWNodCBpbnMgVWZlcmxvc2UuCgpNYWhhdG1hIChrZW5udCBlaW5lIE1lbmdlIFNhY2hlbiwgZGllIGluIGRlciBBcmVuYSBndXQgc2luZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEV0d2FzIGFtIFppZWwgdm9yYmVpIC4uLiAoRnl0LCAyOS4gSmFuIDE5OTYsIDE0OjM3OjA0KToKfiMhIHJuPVppbm8gcnQ9ODIyOTE4MzcyCn4jISB0aWQ9ODIyNTY1MjY1CkltbWVyaGluIGlzIGRlciBiZXN0ZSBDaGFvdCBzbyB3ZWl0IGdla29tbWVuIHdpZSBkZXIgYmVzdGUKS2FyYXRla2EgKG9obmUgU3RlaW5lKSwgc28gZGFzcyBpY2ggbmljaHQgdmVyc3RlaGUsIHdpZXNvCkthcmF0ZSBzb3ZpZWwgYmVzc2VyIGFscyBDaGFvcyBzZWluIHNvbGwuLi4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEV0d2FzIGFtIFppZWwgdm9yYmVpIC4uLiAoQ3VjaHVsbGluLCAyOS4gSmFuIDE5OTYsIDE1OjExOjMwKToKfiMhIHJuPUZ5dCBydD04MjI5MjI2MjQKfiMhIHRpZD04MjI1NjUyNjUKCkluendpc2NoZW4gZHVlcmZ0ZSBpbiBlaW5zY2hsYWVnaWdlbiBLcmVpc2VuIGFiZXIgZHVyY2hnZXNpY2tlcnQgc2VpbiwgZGFzcwphdWNoIGVpbiBBYmVudGV1cmVyIGRlbiB6d2Fuemlnc3RlbiBHbGFkaWF0b3IgYmVzaWVndCBoYWV0dGUsIHdlbm4gZXIgZWJlbiBkZW4KZ2V3aXNzZW4gR2VnZW5zdGFuZCBvZnQgZ2VudWcgZGFiZWkgZ2VoYWJ0IGhhZXR0ZS4KCk1haGF0bWFzIFZvcnNjaGxhZyBzY2hlaW50IGVpZ2VudGxpY2ggZ2FueiBvayB6dSBzZWluLi4uIG9kZXI/CgpDdWNoLi0gICAgICAgIChoYXQgTWVpbnVuZykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFdHdhcyBhbSBaaWVsIHZvcmJlaSAuLi4gKEZyYWRvLCAyOS4gSmFuIDE5OTYsIDIwOjE5OjAwKToKfiMhIHJuPVppbm8gcnQ9ODIyOTE4MzcyCn4jISB0aWQ9ODIyNTY1MjY1CmFlaG0gLSBkYXMgaGFiZSBpY2ggZHVyaWFuIHNjaG9uIGxldHp0ZSB3b2NoZSB2b3JnZXNjaGxhZ2VuLiBkaWUgZnJhZ2UgaXN0Cm51ciwgb2IgZXMgb2huZSB3ZWl0ZXJlcyBwcm9ncmFtbWllcmJhciBpc3QsIGRpZSAnc29uZGVyd2FmZmVuJyBpbnNvd2VpdAphYnp1ZnJhZ2VuLCBkYXNzIG51ciBqZXdlaWxzIGVpbmUgdm9uIGRpZXNlbiB3YWZmZW4gaW4gZGllIGFyZW5hIGdlbm9tbWVuCndlcmRlbiBrYW5uIC0gdW5kOiB3aWUgc29yZ2UgaWNoIGRhZnVlciwgZGFzcyBtaXIgbmljaHQgZWluIHp3ZWl0aSBiZWltIHRhbmtlbgphdXNzZXJoYWxiIGRlciBhcmVuYSBuZXVlIHNvbmRlcndhZmZlbiBpbiBkaWUgaGFuZCBkcnVlY2t0LCB3b3ZvbiBpY2ggZGFubgpuYXR1ZXJsaWNoIHdpZWRlciBudXIgamV3ZWlscyBlaW5lIG1pdG5laG1lLi4uCnRhdHNhY2hlIGJsZWlidCwgdW5kIHdpcmQgYmVpIGplZGVyIGRpc2t1c3Npb24gdWViZXIgZGllIGtyYWVmdGV2ZXJoYWVsdG5pc3NlCmhpZXIgbmV1IGFuZ2VmdWVocnQ6IHdlbm4gZGllIG1hZ2llciBhbmRhdWVybmQgaXJnZW5kd2VsY2hlIG5ldWUgd2FmZmVuCmVyZmluZGVuLCBkaWUgc3BpZWxlciB6dXNhZXR6bGljaGUgZWluc2FldHplbiBrb2VubmVuLCBpc3QgZGFzIHJlc3VsdGF0IGhhbHQKZWluZSBpbW1lciBzdGFlcmtlcmUgdmVyemVycnVuZyBkZXMgdmVyaGFlbHRuaXNzZXMgc3BpZWxlciAuLy4gbnBjIC0gdW5kIGhhdAphdXNzZXJkZW0gZGVuIG5lYmVuZWZmZWt0LCBkYXNzIHNpY2ggZGFiZWkgZmVobGVyIGVpbnNjaGxlaWNoZW4sIGRpZQprdXJ6emVpdGlnIGRlbiB2ZXJ6ZXJydW5nc2VmZmVrdCBzb2dhciBub2NoIHZlcmdyb2Vzc2VybiAoc28gaGFldHRlIE1haGF0bWEKei5CLiBkaWUgSHlkcmEgb2huZSBkZW4gYnVnIGluIGRlbiBQZmlyc2ljaGVuIHNpY2hlcmxpY2ggbmljaHQgZ2V0b2V0ZXQpIC0KdmllbGxlaWNodCBzb2xsdGUgbWFuIGVoZXIgdWViZXIgZWluZSBnZW5lcmVsbGUgbG9lc3VuZyBpbSBiZXJlaWNoCnNvbmRlcndhZmZlbiAvIHRyYWdiYXJlIGhlaWx1bmdlbiBuYWNoZGVua2VuIHVtIGRhcyBwcm9ibGVtIGFuIGRlciB3dXJ6ZWwgenUKcGFja2VuLCBhbHMgaW1tZXIgd2llZGVyIGJlaSBuZXVlbiBtb25zdGVybiB1ZWJlciBkaWUgdmVyc2Nob2JlbmVuCmtyYWVmdGV2ZXJoYWVsdG5pc3NlIHp1IGRpc2t1dGllcmVuLgoKUnluZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChCb2luZywgMjkuIEphbiAxOTk2LCAyMTowMDoyOCk6Cn4jISBybj1GcmFkbyBydD04MjI5NDMxNDAKfiMhIHRpZD04MjI1NjUyNjUKWnVyIHRyYWdiYXJlbiBIZWlsdW5nIGhhYiBlcyBlaWdlbnRsaWNoIHNjaG9uIGltbWVyIGVpbmUgZmVzdGUgUmVnZWw6CiAgbmljaHQgZXJsYXVidAoKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChBbmFraW4sIDI5LiBKYW4gMTk5NiwgMjE6MDc6MjUpOgp+IyEgcm49Qm9pbmcgcnQ9ODIyOTQ1NjI4Cn4jISB0aWQ9ODIyNTY1MjY1Ck5hamEgQm9pbmcsIHZpZWwgU3Bhc3MgYmVpbSB1bWtyZW1wZWxuIGRlcyBNdWRzIGJlaSBkZXIgU3VjaGUgbmFjaAp0cmFnYmFyZW4gSGVpbHN0ZWxsZW4uCgpBbmFraW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBFdHdhcyBhbSBaaWVsIHZvcmJlaSAuLi4gKFJvY2h1cywgMjkuIEphbiAxOTk2LCAyMToxNzowNik6Cn4jISBybj1BbmFraW4gcnQ9ODIyOTQ2MDQ1Cn4jISB0aWQ9ODIyNTY1MjY1CkhtbSwgaGF0dGVuIHdpciB1bnMgbmljaHQgbWFsIGRhcmF1ZiBnZWVpbmlndCwgZGFzcyB0cmFnYmFyZQpIZWlsdW5nIHVudGVyIHNlaHIgcmVzdHJpa3RpdmVuIEJlZGluZ3VuZ2VuIGRvY2ggZXJsYXVidCBpc3Q/Cih6LkIuIFNhZXR0aWd1bmcgPj0gNCpIZWlsdW5nIG9kZXIgZWluZSBzZWhyIGJlZ3Jlbnp0ZSBBbnphaGwKcHJvIFJlc2V0IHVzdy4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBFdHdhcyBhbSBaaWVsIHZvcmJlaSAuLi4gKFppbm8sIDMwLiBKYW4gMTk5NiwgMTA6NDY6NDMpOgp+IyEgcm49Qm9pbmcgcnQ9ODIyOTQ1NjI4Cn4jISB0aWQ9ODIyNTY1MjY1CgpVbmQgd2FzIGlzdCBtaXQgRGVpbmVtIFdhc3NlcnN0ZWluLCBCb2luZz8KCk1haGF0bWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEV0d2FzIGFtIFppZWwgdm9yYmVpIC4uLiAoWmlubywgMzAuIEphbiAxOTk2LCAxMDo0OToyNik6Cn4jISBybj1GcmFkbyBydD04MjI5NDMxNDAKfiMhIHRpZD04MjI1NjUyNjUKCkhtbSwgaWNoIGtvZW5udGUgbWlyIGRhcyBzbyB2b3JzdGVsbGVuLCBkYXNzIG5pY2h0IGdlbmVyZWxsIGRhcyBEYWJlaWhhYmVuCnVlYmVyd2FjaHQgd2lyZCwgc29uZGVybiBkYXMgQmVudXR6ZW4sIHVuZCBkYXMgbmFjaCBCZW51dHp1bmcgZGVtIFNwaWVsZXIgdm9yCkJldHJldGVuIGRlciBBcmVuYSBkZXIgR2VnZW5zdGFuZCBkYW5uIGFiZ2Vub21tZW4gd2lyZCwgd2llIGRhcyBkZXJ6ZWl0IGJlaQpkZW4gRmxhbW1lbmt1Z2VsbiB1c3cuIGRlciBGYWxsIGlzdC4KCk1haGF0bWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkt1cnplIFBhdXNlIC4uLiAoRHVyaWFuLCAzMC4gSmFuIDE5OTYsIDExOjE2OjA1KToKSGFsbG8hCgpJbiBkZW0gU2VoZXJ3ZXR0YmV3ZXJiIGdpYnQgZXMgZWluZSBrdXJ6ZSBQYXVzZS4gSWNoIHdpbGwgbWlyIGRhIHdhcwp1ZWJlcmxlZ2VuLCB1bSBlcyBhbGxlcyByZWNodCB6dSBtYWNoZW4uIChBUkdILCBJQ0ggQklOIFdBSE5TSU5OSUchKS4KRW5kZSBkZXIgV29jaGUgd2lyZCB3b2hsIGVpbmUgQXVzcnVlc3R1bmdzZW50c2NoZWlkdW5nIGdlZmFsbGVuIHNlaW4gLi4uCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRXR3YXMgYW0gWmllbCB2b3JiZWkgLi4uIChBc21vZGlzLCAzMS4gSmFuIDE5OTYsIDExOjQyOjQ1KToKfiMhIHJuPUJvaW5nIHJ0PTgyMjk0NTYyOAp+IyEgdGlkPTgyMjU2NTI2NQpIbW0sIGVzIGdpYnQgc2llIGFiZXIgdHJvdHpkZW0gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEV0d2FzIGFtIFppZWwgdm9yYmVpIC4uLiAoTXVwZmVsLCAzMS4gSmFuIDE5OTYsIDIyOjQ1OjU4KToKfiMhIHJuPVppbm8gcnQ9ODIyOTk1MzY2Cn4jISB0aWQ9ODIyNTY1MjY1Cm5hIG1hbiBrYW5uIGRpZSBtb25zdGVyIGF1Y2ggZWluZmFjaCBkYWdlZ2VuIGltbXVuIG1hY2hlbgoKLm11cGZlbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcnNjaGxhZyAoWWVuZGksICAxLiBGZWIgMTk5NiwgMTA6Mzk6MDcpOgoKUXVhc2ltb2RvIGhhdHRlIG5ldWxpY2ggZWluZSBicmlsbGFudGUgSWRlZToKCkVyIHNjaGx1ZyB2b3IsIHN0YXR0IGRlciBnZW5lcmlzY2hlbiBHbGFkaWF0b3JlbiBmdWVyIGRlbiBTZWhlcndldHRrYW1wZgpvcmlnaW5hbGUgTUctTW9uc3RlciB6dSBuZWhtZW4sIGFsc28gdm9tIFNTUC1PcmsgdWViZXIgZGFzIFVudGllciBiaXMgenVyCkh5ZHJhLCBzbyBkYXNzIGRpZSBTZWhlciBhdWNoIHplaWdlbiBrb2VubmVuLCBkYXNzIHNpZSBkaWUgU2Nod2FjaHN0ZWxsZW4gZGVyCmpld2VpbGlnZW4gTW9uc3RlciBrZW5uZW4uCkR1cmlhbiBsZWhudGUgZGFzIGFiLCB3ZWlsIGRpZSBnZW5lcmlzY2hlbiBHbGFkaWF0b3JlbiBzbyBodWVic2NoIG5vcm1pZXJiYXIKc2luZDsgdmVyc3RhZW5kbGljaC4KCkF1c3NlcmRlbSBzY2hsdWcgUXVhc2ltb2RvIFNjaGF1a2FlbXBmZSB2ZXJzY2hpZWRlbmVyIE1HLU1vbnN0ZXIgZ2VnZW4tCmVpbmFuZGVyIHZvcjogTWFuIGdlaHQgenVyIEFyZW5hLCBzY2hhdXQgc2ljaCBkaWUgUHJlaXNlIGF1ZiBkZXIgTGlzdGUgYW4KdW5kIG9yZGVydCAiMSBFaXN0aXRhbiBnZWdlbiAxIEdvYmxpbmhleGVyIiwgZGFubiBnZWhlbiBkaWUgR2l0dGVyIHp1IGRlbgpUaWVyZ2VoZWdlbiBhdWYsIHVuZCBkZXIgS2FtcGYgYmVnaW5udCB1bnRlciBkZW0gYmVnZWlzdGVydGVuIEdlam9obGUgZGVyClp1c2NoYXVlci4KTmF0dWVybGljaCBzaW5kIEF1Znp1Y2h0IHVuZCBQZmxlZ2Ugdm9uIGRyZWllaW5oYWxiIE1pbGxpb25lbgpTY2htZXR0ZXJsaW5nZW4sIEJhZXJlbiwgVGlnZXJuLCBPcmtzLCBFaXNiYWVyZW4sIEh5ZHJhcyAoSHlkcmFlPykgZXRjLiBuaWNodApiaWxsaWcsIHdhcyBzaWNoIGRpcmVrdCBpbiBkZW4gUHJlaXNlbiBmdWVyIGRlbiBqZXdlaWxpZ2VuIEthbXBmIHdpZWRlci0Kc3BpZWdlbG4gc29sbHRlLi4uCgoKClNvLCBzb3ZpZWwgenVtIExvYiBRdWFzaW1vZG9zIEVpbmZhbGxzcmVpY2h0dW1zLCB3YXMgc2FndCBkaWUgZWRsZSBPYnJpZ2tlaXQ/CgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBFdHdhcyBhbSBaaWVsIHZvcmJlaSAuLi4gKER1cmlhbiwgIDEuIEZlYiAxOTk2LCAxMDozOToyNik6Cn4jISBybj1NdXBmZWwgcnQ9ODIzMTI0NzU4Cn4jISB0aWQ9ODIyNTY1MjY1Ck5laW4sIGRhcyBrYW5uIGljaCBuaWNodCBlaW5mYWNoLCBhdWNoIHdlbm4gdmllbGUgbWVpbmVuIGRhcyBnaW5nZS4gRGFubgp3dWVyZGUgaWNoIG5hZW1saWNoIGF1Y2ggZGllIENoYW90ZW4gYXVzYnJlbXNlbiBkaWUgZGllIFdpcmt1bmcgZGVyClN0ZWluZSAoYWxsZXJkaW5ncyBuaWNodCBzbyBkZXV0bGljaCkgYWxzIHNwZWxsIGF1c2xvZXNlbiBrb2VubmVuLgpEaWUgR2xhZGlhdG9yZW4gZ2VuZXJlbGwgZ2VnZW4gaXJnZW5kZXR3YXMgaW1tdW4genUgbWFjaGVuLCBoYWx0IGljaApuaWNodCBmdWVyIHJpY2h0aWcgKHp1bSB3aWV2aWVsdGVuIG1hbCBzY2hyZWliZSBpY2ggaWNoIGRhcyBqZXR6dD8pLgoKSWNoIHdlcmRlIGFiZXIgd29obCBuaWNodCBkcnVtaGVydW0ga29tbWVuLCBtaXIgaXJnZW5kZXR3YXMgZWluZmFsbGVuCnp1IGxhc3Nlbi4gSWNoIGJyYXVjaGUgbnVyIG1hbCAyIFN0dW5kZW4gWmVpdCAuLi4KCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVm9yc2NobGFnIChEdXJpYW4sICAxLiBGZWIgMTk5NiwgMTA6NDE6MzIpOgp+IyEgcm49WWVuZGkgcnQ9ODIzMTY3NTQ3Cn4jISB0aWQ9ODIzMTY3NTQ3CkRpZSBJZGVlIG1pdCBkZW4gU2NoYXVrYWVtcGZlbiBpc3QgaW4gZGVyIFRhdCBlaW5lIGJyaWxsaWFudGUgSWRlZS4gU2llCmtvbW10IGF1ZiBkaWUgTGlzdGUgLi4uIGFlaG0sIGljaCB3ZWlzcyBudXIgbmljaHQgd2llIHdlaXQgb2JlbiwgYWJlcgpzaWUgaXN0IGdlbWVya3QgOi0pCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZvcnNjaGxhZyAoU2lsdmFuYSwgIDEuIEZlYiAxOTk2LCAxMToyMjozMik6Cn4jISBybj1ZZW5kaSBydD04MjMxNjc1NDcKfiMhIHRpZD04MjMxNjc1NDcKVGphIC0gbnVyIGdhbnoga3VyejoKSWNoIGZpbmQgZGllIElkZWUgc2VociBndXQgKHdlbm5nbGVpY2ggbWFuIGF1ZiBkaWUgSHlkcmEgdmVyemljaHRlbiBzb2xsdGUpLgpBYmVyIGRhIGRpZSBBcmVuYSBuaWNodCB2b24gbWlyIGlzdC4uLi4KCiAgU2lsdmFuYSAtIGZyYWd0IER1cmlhbiwgb2IgbWFuIGRhcmF1cyBuaWNodCBlaW5lIEtvbmt1cmVuenZlcmFuc3RhbHR1bmcKICAgICAgICAgICAgbWFjaGVuIGtvZW5udGUuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVm9yc2NobGFnIChEdXJpYW4sICAxLiBGZWIgMTk5NiwgMTE6MzM6NTcpOgp+IyEgcm49U2lsdmFuYSBydD04MjMxNzAxNTIKfiMhIHRpZD04MjMxNjc1NDcKSmEsIGphIHVuZCBqYSEKCkVuZGxpY2ggZWluIFZvcnNjaGxhZyBkZXIgbWljaCB2aWVsbGVpY2h0IGF1cyBkZXIgU2NodXNzbGluaWUgbmltbXQgOi0pCkVzIHdpcmQgZWluZmFjaCBiZWlkZXMgZ2ViZW4sIHNvd29obCBfbWVpbmVuXyBTZWhlcndldHRiZXdlcmIgYWxzIGF1Y2gKZWluZW4gbWl0IGVjaHRlbiBNVUQtTW9uc3Rlcm4uIERlciBFaW5iYXUgc29sbHRlIGtlaW4gUHJvYmxlbSBzZWluIChzbwo2LTggTW9uYXRlIG9kZXIgc28gLi4uIGFlaGVtIDotKSkuIEljaCBkZW5rZSBtYWwgZHJ1ZWJlciBuYWNoLgoKRWluZmFjaCBiZWlkZXMgbWFjaGVuLCBkYXJhdWYgbXVzcyBtYW4gZXJzdG1hbCBrb21tZW4gLi4uCgpWaWVsbGVpY2h0IGthbm4gaWNoIGRhbm4gZW5kbGljaCBhdWZob2VyZW4sIHZvbiBTdGVpbmVuIHp1IHRyYWV1bWVuICpncmlucyoKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVm9yc2NobGFnIChNdXBmZWwsICAxLiBGZWIgMTk5NiwgMTk6NTc6MzMpOgp+IyEgcm49WWVuZGkgcnQ9ODIzMTY3NTQ3Cn4jISB0aWQ9ODIzMTY3NTQ3CnNvIG5lIGlkZWUgaGF0dGUgaWNoIGF1Y2ggc2Nob24uIG51ciBrZWluIGJvY2sgZGFzIGF1Y2ggenUgcHJvZ2dlbi4gbm9jaHdhczoKZ2VnZW4ga29obGUga2FubiBlaW4gc3BpZWxlciBhdWNoIHdhZmZlbi9ydWVzdHVuZ2VuIHRlc3Rlbi4gZXIgZ2lidCB3YWZmZSAxCmFuIG1vbnN0ZXIgMSB3YWZmZSAyIGFuIG1vbnN0ZXIgMiB1bmQgYmV6YWhsdCBzYWdlbndlciAzIGthZW1wZmUgKGpld2VpbHMgYmlzCnp1bSB0b2QgZWluZXMgZGVyIG1vbnN0ZXIpIHNvIGthbm4gZXIgZGllIHdhZmZlbiB0ZXN0ZW4gKGxhc3NlbikgLS0tIHdhciBtaXIKYXVjaCB6dXZpZWwgKGZhdWxlciBtYWdpZXIsIGljaCA6LSkKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTZWhlcndldHRiZXdlcmIgKER1cmlhbiwgMjkuIEZlYiAxOTk2LCAxODoyMTowOSk6CgpJQ0ggS0xBR0UgQU4hCgpVbmQgendhciBtaWNoIHNlbGJlciAuLi4gd2VpbCBpY2ggZWluZmFjaCBuaWNodCBmZXJ0aWcgZGllIHdvaGwgZ2FyIG5pY2h0CnNvIGdyb3NzZW4gQWVuZGVydW5nZW4gYW4gZGVtIFNlaGVyd2V0dGJld2VyYiBmZXJ0aWcgenUgYmVrb21tZW4uIEljaAptb2VjaHRlIG1pY2ggYmVpIGFsbGVuLCBkaWUgaW1tZXIgdW5kIGltbWVyIHdpZWRlciBuYWNoZnJhZ2VuIGVudHNjaHVsZGlnZW4uCkVzIHdpcmQgd29obCBub2NoIGVpbiBrbGVpbiB3ZW5pZyBkYXVlcm4uCgpJY2ggbW9lY2h0ZSBkYWhlciBhdWNoIGJlc3NlciBrZWluZW4gVGVybWluIHNhZ2VuLCB3YW5uIGljaCBkZW4gU2VoZXItCndldHRiZXdlcmIgd2llZGVyIG9lZmZuZW4ga2Fubiwgc3ByaWNoIHdhbm4gaWNoIGRpZSBtZWhyIG9kZXIgd2VuaWdlcgprbGVpbmVuIEFlbmRlcnVuZ2VuIGR1cmNoZnVlaHJlbiBrYW5uLiBFcyBoYWVuZ3QgYWxsZXMgZWluIHdlbmlnIGFuCmRlciBaZWl0IChEaXBsb21hcmJlaXQgdW5kIHNvKSB1bmQgKGljaCBiaW4gamEgZWhybGljaCkgYXVjaCBlaW4gd2VuaWcKYW4gZGVyIEx1c3QgKHdlbm4gbWFuIGRlbiBnYW56ZW4gVGFnIGZ1ZXIgZGllIERpcGxvbWFyYmVpdCBwcm9ncmFtbWllcnQKZmVobHQgZWluIHdlbmlnIGRpZSBMdXN0IGZ1ZXIgTFBDIC4uLikuCgpEYWhlcjogaGFrdCBydWhpZyB3ZWl0ZXIgbmFjaCwgaXJnZW5kd2llIHNjaGFmZnQgbWljaCBtZWluIHNjaGxlY2h0ZXMKR2V3aXNzZW4gOy0pIEFiZXIgYml0dGUgbnVyIG5hY2hoYWtlbiwgbmljaHQgbmVydmVuIDotKQoKdW0gR2VkdWxkIGJpdHRlbmQsCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV0lFREVSRVJPRUZGTlVORyAoRHVyaWFuLCAgNC4gTWFyIDE5OTYsIDIyOjUwOjE4KToKCkdST1NTRSBXSUVERVJFUk9FRkZOVU5HISEhCj09PT09PT09PT09PT09PT09PT09PT09PT09CgpEYXMgbGFuZ2UgV2FydGVuIGhhdCBzaWNoIGdlbG9obnQsIGVzIGlzdCB3aWVkZXIgc293ZWl0ISBEZXIKU2VoZXJ3ZXR0YmV3ZXJiIGlzdCB3aWVkZXIgZXJvZWZmbmV0ISBFcyBpc3Qgd2llZGVyIG1vZWdsaWNoIHNlaW5lCkZhZWhpZ2tlaXRlbiB1bnRlciBCZXdlaXMgenUgc3RlbGxlbiwgbWFuIGthbm4gd2llZGVyIGRlbiBhbmRlcmVuCnplaWdlbiwgIHdhcyBlaW5lIEhhcmtlIGlzdCwgbWFuIGthbm4gZWluZW4gbmV1ZW4gQW5ncmlmZiBhdWYgZGllClRvcGxpc3RlIGFsbGVyIFNlaGVyIG1hY2hlbi4KCkZ1ZXIgYWxsZSwgZGllIGlobiBub2NoIG5pY2h0IGtlbm5lbiwgaGllciBub2NoIGVpbm1hbCBpbiBrdXJ6ZW4KV29ydGVuLCB3YXMgZGVyIFNlaGVyd2V0dGJld2VyYiBpc3Q6CgpXb3J1bSBnZWh0IGVzPwotLS0tLS0tLS0tLS0tLQpFcyBnZWh0IGRhcnVtLCBkaWUgR2xhZGlhdG9yZW4genUgYmVzaWVnZW4uIE5laW4sIG5pY2h0IGRpZSBhbHRlbiwKc29uZGVybiBkaWUgbmV1ZW4sIGF1ZmdldGVpbHQgaW4gU3R1ZmVuLiBNaXQgamVkZXIgU3R1ZmUgd2lyZCBkZXIKR2xhZGlhdG9yIGVpbiB3ZW5pZyBzdGFlcmtlci4gWmllbCBpc3QgZXMgbnVuLCBlaW5lIG1vZWdsaWNoc3QgaG9oZQpTdHVmZSB6dSBiZXNpZWdlbi4KCldlbGNoZXMgaXN0IGRpZSBob2VjaHN0ZSBTdHVmZT8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFaW5lIGhvZWNoc3RlIFN0dWZlIGdpYnQgZXMgbmljaHQsIGVzIGdpYnQgaW1tZXIgd2llZGVyIGVpbmUgbm9jaApob2VoZXJlIQoKSXN0IGRhcyBnZWZhZWhybGljaD8KLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmF0dWVybGljaCEgQXVjaCBoaWVyIGlzdCBlaW5lIEZsdWNodCB3YWVocmVuZCBkZXMgS2FtcGZlcyBuaWNodAptb2VnbGljaCEgTnVyIHp3aXNjaGVuIGRlbiBLYWVtcGZlbiBrYW5uIG1hbiBkaWUgQXJlbmEgdmVybGFzc2VuLCB1bQpzaWNoIHp1IHN0YWVya2VuLiBBYmVyIHdpZSB1ZWJsaWNoIGdpbHQ6IHdlciB6dWxhbmdlIHdlZ2JsZWlidCBoYXQKUGVjaCEKClNvd2VpdCBuaWNodHMgTmV1ZXMsIGRvY2ggamV0enQga29tbXQgZXM6CgpBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tIEFDSFRVTkcgLS0tLSBORVUgLS0tLQpBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tIEFDSFRVTkcgLS0tLSBORVUgLS0tLQpBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tIEFDSFRVTkcgLS0tLSBORVUgLS0tLQpBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tIEFDSFRVTkcgLS0tLSBORVUgLS0tLQoKRXMgZ2lidCBqZXR6dCBlaW5lIERSRUktR0VHRU5TVEFFTkRFLVJFR0VMISBFcyBkdWVyZmVuIG51ciAzCkdlZ2Vuc3RhZW5kZSBkZXJzZWxiZW4gQXJ0IHdhZWhyZW5kIGVpbmVzIFdldHRiZXdlcmJlcyBiZW51dHp0IHdlcmRlbiEKVW0gZGllcyB6dSB2ZXJkZXV0bGljaGVuLCBoaWVyIGRpZSBvZmZpemllbGxlIEVya2xhZXJ1bmc6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEaWUgRFJFSS1HRUdFTlNUQUVOREUtUkVHRUwKPT09PT09PT09PT09PT09PT09PT09PT09PT09CgogIERpZXNlIFJlZ2VsIGJldHJpZmZ0IGF1c3NjaGxpZXNzbGljaCBkZW4gS2FtcGYgZ2VnZW4gZGllIEdsYWRpYXRvcmVuCnVuZCBkZW4gU2VoZXJ3ZXR0YmV3ZXJiLiBFcyBpc3QgbnVyIGdlc3RhdHRldCwgZHJlaSBPYmpla3RlIGRlciBnbGVpY2hlbiAKQXJ0IGluIGRlciBBcmVuYSB6dSBiZW51dHplbi4gSGFiZW4gc2ljaCBkaWUgZHJlaSBPYmpla3RlIGFiZ2VudXR6dCwga2FubgprZWluIG5ldWVzIHZlcndlbmRldCB3ZXJkZW4uIERhIGRpZXMgbmljaHQgZ2FueiBzbyBlaW5mYWNoIGlzdCwgd29sbGVuIHdpcgpoaWVyIGt1cnogZXJsYWV1dGVybiwgd2llIGRpZSBTYWNoZSBnZW5hdSBnZXJlZ2VsdCBpc3QuCgogIERpZSBWZXJ3ZW5kdW5nIHZvbiBPYmpla3RlbiB3aXJkIHZvbiB1bnNlcmVuIFdhZWNodGVybiBpbSBFaW5nYW5nc2JlcmVpY2gKZGVyIEFyZW5hIHVlYmVyd2FjaHQuIEplZGVzbWFsLCB3ZW5uIGRlciBNdXRpZ2Ugb2RlciBkaWUgTXV0aWdlIGRpZSBBcmVuYQpiZXRyaXR0LCB3aXJkIHByb3Rva29sbGllcnQsIHdlbGNoZSBHZWdlbnN0YWVuZGUgZXIvc2llIGRhYmVpIGhhdC4gQUxMRQpPQkpFS1RFLCBESUUgTUFOIElOIERJRVNFTSBNT01FTlQgREFCRUkgSEFULCBXRVJERU4gUkVHSVNUUklFUlQuIE1hbgpzb2xsdGUgYWxzbyBhdWZwYXNzZW4sIGRhc3MgZGVyIEdlZ2Vuc3RhbmQgZGFubiBuaWNodCBzY2hvbiB2ZXJicmF1Y2h0CmlzdCEgRWluIHNwYWV0ZXJlcyBTdHJlaWNoZW4gZWluZXMgT2JqZWt0ZXMgYXVzIGRpZXNlciBMaXN0ZSBpc3QgbmljaHQKbW9lZ2xpY2guCgogIFRyaXR0IG51biBkZXIgRmFsbCBhdWYsIGRhc3MgbWFuICh2ZXJzZWhlbnRsaWNoIG9kZXIgbWl0IHZvbGxlciBBYnNpY2h0KQp2aWVyIEdlZ2Vuc3RhZW5kZSBkZXJzZWxiZW4gQXJ0IG1pdG5laG1lbiBtb2VjaHRlLCBzbyB3aXJkIG1hbiB2b24gZGVuCldhZWNodGVybiBhbSBCZXRyZXRlbiBkZXIgQXJlbmEgZ2VoaW5kZXJ0LiBNYW4gaXN0IG51biBnZXp3dW5nZW4sIGRlbgp2aWVydGVuIEdlZ2Vuc3RhbmQgd2VnenVsZWdlbiEgQUNIVFVORzogV2VubiBiZXJlaXRzIGRyZWkgT2JqZWt0ZQpyZWdpc3RyaWVydCB3b3JkZW4gc2luZCwgdW5kIG1hbiBiZWltIHp3ZWl0ZW4gQmV0cmV0ZW4gZWluIHZpZXJ0ZXMgCk9iamVrdCBkZXJzZWxiZW4gQXJ0IG1pdG5laG1lbiBtb2VjaHRlLCBpc3QgZXMgTklDSFQgZWdhbCwgd2VsY2hlbiBkZXIKdmllciBHZWdlbnN0YWVuZGUgbWFuIGFibGVndCEgTWFuIE1VU1MgZGFzIE9iamVrdCBhYmxlZ2VuLCB3ZWxjaGVzIG5vY2gKbmljaHQgcmVnaXN0cmllcnQgaXN0LCB6dXIgTm90IG11c3MgbWFuIHByb2JpZXJlbi4gSGllciBub2NobWFsIGRlcgpIaW53ZWlzOiBPYmpla3RlIHdlcmRlbiBOVVIgREFOTiByZWdpc3RyaWVydCwgd2VubiBtYW4gbWl0IGlobmVuCmVyZm9sZ3JlaWNoIGluIGRpZSBBcmVuYSBnZWtvbW1lbiBpc3QhCgogIERhIGRpZXMgbmljaHQgZ2FueiBlaW5mYWNoIGlzdCwgZWluIGtsZWluZXMgQmVpc3BpZWw6CgpKb2YgbW9lY2h0ZSBnZXJuZSBpbiBkZXIgQXJlbmEga2FlbXBmZW4uIERhenUgbmltbXQgZXIgZHJlaSBTYWV1cmViYWVsbGUKbWl0LCBkaWUgc2luZCBzY2hsaWVzc2xpY2ggZXJsYXVidC4gQmVpbSBlcnN0ZW4gS2FtcGYgdmVycHVsdmVydCBlciB6d2VpCmRhdm9uIHVuZCBzaWVndC4gRGFubiB2ZXJsYWVzc3QgZXIgZGllIEFyZW5hIHVtIHNpY2ggenUgc3RhZXJrZW4uIEVyIGhhdApqZXR6dCBub2NoIGVpbmVuIFNhZXVyZWJhbGwuIEFsc28sIHNvIGRlbmt0IHNpY2ggSm9mLCBuZWhtZSBpY2ggbWlyIG5vY2ggCmVpbmVuLCB3ZWlsIGRyZWkgZGFyZiBlciBqYS4gRXIgZ2VodCBudW4gYWxzbyBtaXQgMiBTYWV1cmViYWVsbGVuIHp1cgpBcmVuYSB1bmQgLi4uIHdpcmQgbmljaHQgaGluZWluZ2VsYXNzZW4uIERlbm4gZHJlaSBTYWV1cmViYWVsbGUgc2luZCBiZXJlaXRzCnJlZ2lzdHJpZXJ0LCBkZXIgdmllcnRlIGlzdCBhbHNvIGVpbmVyIHp1dmllbCEgT2theSwgZGVua3Qgc2ljaCBKb2YsIGRhbm4KbGVnZSBpY2ggZGVuIGFsdGVuIGFiIHVuZCBuZWhtZSBudXIgZGVuIG5ldWVuIG1pdCBoaW5laW4sIHNpbmQgYXVjaCBkcmVpLgpEb2NoIG5laW4sIGVyIHdpcmQgd2llZGVyIG5pY2h0IGhpbmVpbiBnZWxhc3Nlbiwgd2VpbCBkZXIgYWx0ZSwgYXVjaCB3ZW5uIAplciBkaWVzbWFsIGVpZ2VudGxpY2ggZHJhdXNzZW4gYmxlaWJlbiBzb2xsLCBiZXJlaXRzIHJlZ2lzdHJpZXJ0IGlzdC4gCkFsc28gYmxlaWJ0IEpvZiBuaWNodHMgYW5kZXJlcyB1ZWJyaWcsIGFscyBkZW4gYWx0ZW4gU2FldXJlYmFsbCB6dSBuZWhtZW4gCnVuZCBkZW4gbmV1ZW4gZG9jaCBkcmF1c3NlbiB6dSBsYXNzZW4hCgogIE5vY2ggZWluIGtsZWluZXIgSGlud2VpczogR2VnZW5zdGFlbmRlIGluIEJldXRlbG4genUgdmVyc3RlY2tlbiBicmluZ3QKbmljaHRzLCBkYXMgd2lyZCBlcmthbm50LCB1bmQ6IGRpZXNlbGJlIFJlZ2VsdW5nIGdpbHQgZnJlaWxpY2ggYXVjaCBmdWVyCkJldXRlbCEgRXMgZ2lidCB6dXIgWmVpdCBfa2VpbmVfIEF1c25haG1lbiB2b24gZGllc2VyIFJlZ2VsdW5nIQoKICBVbmQgbm9jaCBlaW4gSGlud2VpczogR2VnZW5zdGFlbmRlIGdlbHRlbiBhbHMgZ2xlaWNoLCB3ZW5uIHNpZSBBTSAKU0VMQkVOIE9SVCBHRUZVTkRFTiBXVVJERU4uIEQuaC4gbmljaHQgZGVyIE5hbWUgaXN0IGRhcyBlbnRzY2hlaWRlbmRlIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVW5kbnVuIHd1ZW5zY2hlbiB3aXIgdmllbCBTcGFzcyBhbSBXZXR0YmV3ZXJiLCBtb2VnZSBkZXIgU3RhZXJrZXJlCm9kZXIgZGllIFN0YWVya2VyZSBnZXdpbm5lbiEhCgpJbSBOYW1lbiBkZXIgTUdBQkcgKE1vcmdlbkdyYXVlbkFyZW5hQmV0cmVpYmVyR2VzZWxsc2NoYWZ0KQoKLSBEdXJpYW4KClAuUy46IE5vY2ggZWluIEhpbndlaXMgaW4gZWlnZW5lciBTYWNoZTogV2lyIG1vZWNodGVuIF9hbGxlXyBiaXR0ZW4sCmV2dGwuIHZvcmhhbmRlbmUgVmVyYmVzc2VydW5nc3ZvcnNjaGxhZWdlIGRpcmVrdCBhbiB1bnNlcmVuCkdlc2NoYWVmdHNmdWVocmVyIER1cmlhbiB3ZWl0ZXIgenUgcmVpY2hlbi4gRGVzd2VpdGVyZW4gYml0dGVuIHdpciwKZXZ0bC4gYXVmdHJldGVuZGUgRmVobGVyIGdld2lzc2VuaGFmdCB6dSBtZWxkZW4sIGVzIGlzdCBpbiB1bnNlciBhbGxlbgpJbnRlcmVzc2UhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgprbGVpbmUgQWVuZGVydW5nIGJlaSBkZXIgR2xhZGlhdG9yZW5xdWVzdCAoRHVyaWFuLCAgNC4gTWFyIDE5OTYsIDIyOjUxOjIxKToKCk5FVUVSVU5HIEJFSSBERVIgR0xBRElBVE9SRU5RVUVTVAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkVzIGdpYnQgd2llZGVyIGV0d2FzIE5ldWVzIGJlaW0gS2FtcGYgZ2VnZW4gZGllIGd1dGVuIGFsdGVuCkdsYWRpYXRvcmVuIHp1ciBFcnJlaWNodW5nIGRlcyBUaXRlbHMgZGVzIE9iZXJnbGFkaWF0b3JzIHp1CnZlcm1lbGRlbi4gTmVpbiwgZGllIEdsYWRpYXRvcmVuIHNpbmQgbmljaHQgc3RhZXJrZXIgZ2V3b3JkZW4sIGtlaW5lCkJhbmdlISBBYmVyIGVzIGdpYnQgamV0enQgZWluZSBEUkVJLUdFR0VOU1RBRU5ERS1SRUdFTCEgRGFzIGJlZGV1dGV0LAplcyBpc3QgbnVyIGVybGF1YnQsIGRyZWkgR2VnZW5zdGFlbmRlIGRlcnNlbGJlbiBBcnQgenUgYmVudXR6ZW4uIFVtCmRpZXMgenUgdmVyZGV1dGxpY2hlbiwgaGllciBlaW4gQXVzenVnIGF1cyBkZXIgb2ZmaXppZWxsZW4gRXJrbGFlcnVuZzoKCkFDSFRVTkcgLS0tLSBORVUgLS0tLSBBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tCkFDSFRVTkcgLS0tLSBORVUgLS0tLSBBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tCkFDSFRVTkcgLS0tLSBORVUgLS0tLSBBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tCkFDSFRVTkcgLS0tLSBORVUgLS0tLSBBQ0hUVU5HIC0tLS0gTkVVIC0tLS0gQUNIVFVORyAtLS0tIE5FVSAtLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGllIERSRUktR0VHRU5TVEFFTkRFLVJFR0VMCj09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICBEaWVzZSBSZWdlbCBiZXRyaWZmdCBhdXNzY2hsaWVzc2xpY2ggZGVuIEthbXBmIGdlZ2VuIGRpZSBHbGFkaWF0b3Jlbgp1bmQgZGVuIFNlaGVyd2V0dGJld2VyYi4gRXMgaXN0IG51ciBnZXN0YXR0ZXQsIGRyZWkgT2JqZWt0ZSBkZXIgZ2xlaWNoZW4gCkFydCBpbiBkZXIgQXJlbmEgenUgYmVudXR6ZW4uIEhhYmVuIHNpY2ggZGllIGRyZWkgT2JqZWt0ZSBhYmdlbnV0enQsIGthbm4Ka2VpbiBuZXVlcyB2ZXJ3ZW5kZXQgd2VyZGVuLiBEYSBkaWVzIG5pY2h0IGdhbnogc28gZWluZmFjaCBpc3QsIHdvbGxlbiB3aXIKaGllciBrdXJ6IGVybGFldXRlcm4sIHdpZSBkaWUgU2FjaGUgZ2VuYXUgZ2VyZWdlbHQgaXN0LgoKICBEaWUgVmVyd2VuZHVuZyB2b24gT2JqZWt0ZW4gd2lyZCB2b24gdW5zZXJlbiBXYWVjaHRlcm4gaW0gRWluZ2FuZ3NiZXJlaWNoCmRlciBBcmVuYSB1ZWJlcndhY2h0LiBKZWRlc21hbCwgd2VubiBkZXIgTXV0aWdlIG9kZXIgZGllIE11dGlnZSBkaWUgQXJlbmEKYmV0cml0dCwgd2lyZCBwcm90b2tvbGxpZXJ0LCB3ZWxjaGUgR2VnZW5zdGFlbmRlIGVyIGRhYmVpIGhhdC4gQUxMRQpPQkpFS1RFLCBESUUgTUFOIElOIERJRVNFTSBNT01FTlQgREFCRUkgSEFULCBXRVJERU4gUkVHSVNUUklFUlQuIE1hbgpzb2xsdGUgYWxzbyBhdWZwYXNzZW4sIGRhc3MgZGVyIEdlZ2Vuc3RhbmQgZGFubiBuaWNodCBzY2hvbiB2ZXJicmF1Y2h0CmlzdCEgRWluIHNwYWV0ZXJlcyBTdHJlaWNoZW4gZWluZXMgT2JqZWt0ZXMgYXVzIGRpZXNlciBMaXN0ZSBpc3QgbmljaHQKbW9lZ2xpY2guCgogIFRyaXR0IG51biBkZXIgRmFsbCBhdWYsIGRhc3MgbWFuICh2ZXJzZWhlbnRsaWNoIG9kZXIgbWl0IHZvbGxlciBBYnNpY2h0KQp2aWVyIEdlZ2Vuc3RhZW5kZSBkZXJzZWxiZW4gQXJ0IG1pdG5laG1lbiBtb2VjaHRlLCBzbyB3aXJkIG1hbiB2b24gZGVuCldhZWNodGVybiBhbSBCZXRyZXRlbiBkZXIgQXJlbmEgZ2VoaW5kZXJ0LiBNYW4gaXN0IG51biBnZXp3dW5nZW4sIGRlbgp2aWVydGVuIEdlZ2Vuc3RhbmQgd2VnenVsZWdlbiEgQUNIVFVORzogV2VubiBiZXJlaXRzIGRyZWkgT2JqZWt0ZQpyZWdpc3RyaWVydCB3b3JkZW4gc2luZCwgdW5kIG1hbiBiZWltIHp3ZWl0ZW4gQmV0cmV0ZW4gZWluIHZpZXJ0ZXMgCk9iamVrdCBkZXJzZWxiZW4gQXJ0IG1pdG5laG1lbiBtb2VjaHRlLCBpc3QgZXMgTklDSFQgZWdhbCwgd2VsY2hlbiBkZXIKdmllciBHZWdlbnN0YWVuZGUgbWFuIGFibGVndCEgTWFuIE1VU1MgZGFzIE9iamVrdCBhYmxlZ2VuLCB3ZWxjaGVzIG5vY2gKbmljaHQgcmVnaXN0cmllcnQgaXN0LCB6dXIgTm90IG11c3MgbWFuIHByb2JpZXJlbi4gSGllciBub2NobWFsIGRlcgpIaW53ZWlzOiBPYmpla3RlIHdlcmRlbiBOVVIgREFOTiByZWdpc3RyaWVydCwgd2VubiBtYW4gbWl0IGlobmVuCmVyZm9sZ3JlaWNoIGluIGRpZSBBcmVuYSBnZWtvbW1lbiBpc3QhCgogIERhIGRpZXMgbmljaHQgZ2FueiBlaW5mYWNoIGlzdCwgZWluIGtsZWluZXMgQmVpc3BpZWw6CgpKb2YgbW9lY2h0ZSBnZXJuZSBpbiBkZXIgQXJlbmEga2FlbXBmZW4uIERhenUgbmltbXQgZXIgZHJlaSBTYWV1cmViYWVsbGUKbWl0LCBkaWUgc2luZCBzY2hsaWVzc2xpY2ggZXJsYXVidC4gQmVpbSBlcnN0ZW4gS2FtcGYgdmVycHVsdmVydCBlciB6d2VpCmRhdm9uIHVuZCBzaWVndC4gRGFubiB2ZXJsYWVzc3QgZXIgZGllIEFyZW5hIHVtIHNpY2ggenUgc3RhZXJrZW4uIEVyIGhhdApqZXR6dCBub2NoIGVpbmVuIFNhZXVyZWJhbGwuIEFsc28sIHNvIGRlbmt0IHNpY2ggSm9mLCBuZWhtZSBpY2ggbWlyIG5vY2ggCmVpbmVuLCB3ZWlsIGRyZWkgZGFyZiBlciBqYS4gRXIgZ2VodCBudW4gYWxzbyBtaXQgMiBTYWV1cmViYWVsbGVuIHp1cgpBcmVuYSB1bmQgLi4uIHdpcmQgbmljaHQgaGluZWluZ2VsYXNzZW4uIERlbm4gZHJlaSBTYWV1cmViYWVsbGUgc2luZCBiZXJlaXRzCnJlZ2lzdHJpZXJ0LCBkZXIgdmllcnRlIGlzdCBhbHNvIGVpbmVyIHp1dmllbCEgT2theSwgZGVua3Qgc2ljaCBKb2YsIGRhbm4KbGVnZSBpY2ggZGVuIGFsdGVuIGFiIHVuZCBuZWhtZSBudXIgZGVuIG5ldWVuIG1pdCBoaW5laW4sIHNpbmQgYXVjaCBkcmVpLgpEb2NoIG5laW4sIGVyIHdpcmQgd2llZGVyIG5pY2h0IGhpbmVpbiBnZWxhc3Nlbiwgd2VpbCBkZXIgYWx0ZSwgYXVjaCB3ZW5uIAplciBkaWVzbWFsIGVpZ2VudGxpY2ggZHJhdXNzZW4gYmxlaWJlbiBzb2xsLCBiZXJlaXRzIHJlZ2lzdHJpZXJ0IGlzdC4gCkFsc28gYmxlaWJ0IEpvZiBuaWNodHMgYW5kZXJlcyB1ZWJyaWcsIGFscyBkZW4gYWx0ZW4gU2FldXJlYmFsbCB6dSBuZWhtZW4gCnVuZCBkZW4gbmV1ZW4gZG9jaCBkcmF1c3NlbiB6dSBsYXNzZW4hCgogIE5vY2ggZWluIGtsZWluZXIgSGlud2VpczogR2VnZW5zdGFlbmRlIGluIEJldXRlbG4genUgdmVyc3RlY2tlbiBicmluZ3QKbmljaHRzLCBkYXMgd2lyZCBlcmthbm50LCB1bmQ6IGRpZXNlbGJlIFJlZ2VsdW5nIGdpbHQgZnJlaWxpY2ggYXVjaCBmdWVyCkJldXRlbCEgRXMgZ2lidCB6dXIgWmVpdCBfa2VpbmVfIEF1c25haG1lbiB2b24gZGllc2VyIFJlZ2VsdW5nIQoKICBVbmQgbm9jaCBlaW4gSGlud2VpczogR2VnZW5zdGFlbmRlIGdlbHRlbiBhbHMgZ2xlaWNoLCB3ZW5uIHNpZSBBTSAKU0VMQkVOIE9SVCBHRUZVTkRFTiBXVVJERU4uIEQuaC4gbmljaHQgZGVyIE5hbWUgaXN0IGRhcyBlbnRzY2hlaWRlbmRlIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClZpZWwgR2x1ZWNrIGJlaW0gU2llZyB1ZWJlciBIZXJrdWxlcyB3dWVuc2NodAoKSW0gTmFtZW4gZGVyIE1HQUJHIChNb3JnZW5HcmF1ZW5BcmVuYUJldHJlaWJlckdlc2VsbHNjaGFmdCkKCi0gRHVyaWFuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdJRURFUkVST0VGRk5VTkcgKER1cmlhbiwgIDQuIE1hciAxOTk2LCAyMzowMDowMCk6Cn4jISBybj1EdXJpYW4gcnQ9ODI1OTc2MjE4Cn4jISB0aWQ9ODI1OTc2MjE4CkFsc28gZGFzIG1pdCBkZW4gZHJlaSBHZWdlbnN0YWVuZGVuIGlzdCBzbyB6dSB2ZXJzdGVoZW4sIG1hbCB3YXMgZnVlcgpJbnNpZGVyOgoKRXMgd2lyZCBkZXIgUGZhZG5hbWUgZGVzIE9iamVrdGVzIGdlbWVya3QuIFNwcmljaDogZWluIFNhZXVyZWJhbGwgaXN0CmVpbiBTYWV1cmViYWxsLCBlZ2FsIHdvIGVyIGdlZnVuZGVuIHdpcmQhIERhcyBtaXQgZGVtc2VsYmVuIE9ydCBiZXppZWh0CnNpY2ggYXVmIEdlZ2Vuc3RhZW5kZSwgZGllIGVzIG51ciBlaW5tYWwgenUgYmVrb21tZW4gZ2lidC4KCkFiZXIgZXMgZ2lidCB2ZXJzY2hpZWRlbmUgQXJ0ZW4gdm9uIFNjaHdlcnRlcm4gLi4uIGtsYXIsIG9kZXI/CgpBY2gsIHByb2JpZXJ0IGVzIGF1cyA6LSkKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdJRURFUkVST0VGRk5VTkcgKEZ5dCwgIDQuIE1hciAxOTk2LCAyMzoxNjo0Myk6Cn4jISBybj1EdXJpYW4gcnQ9ODI1OTc2ODAwCn4jISB0aWQ9ODI1OTc2MjE4CgpOYSwgZGFubiBpcyBEZWluZSBFcmtsYWVydW5nIHZvcmhlciBhYmVyIGV0d2FzIC4uLiBhZWhtLi4gZGFuZWJlbgpnZXdlc2VuLiBTY2hsaWVzc2xpY2ggZ2lidCdzIFNhZXVyZWJhZWxsZSBhbiBtaW5kZXN0ZW5zIHp3ZWkgU3RlbGxlbgppbSBNdWQsIGdlbmF1c28gTmFkZWxuLC4uLiB1c3cgOikKCldpciBtdWVzc2VuIGpldHp0IGFsc28gZGllIE1hZ2llcmxpcyBiaXR0ZW4sIGlocmUgVmVyemVpY2huaXNzZQptaXQgS29waWVuIGRlcnNlbGJlbiBTYWNoZSB2b2xsenVtdWVsbGVuLCBvZGVyPyAqZ3JpbnMqCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLbGVpbmUgUGFubmUga29ycmlnaWVydCAuLi4gKER1cmlhbiwgIDUuIE1hciAxOTk2LCAxNjoxMDoxMik6CkhhbGxvIExldXRlIQoKR2VyYWRlIGhhYmUgaWNoIGVpbmUga2xlaW5lIFBhbm5lIGtvcnJpZ2llcnQgLi4uIHdhcnVtIGhhdCBtaXIKbmllbWFuZCBnZXNhZ3QsIGRhc3MgRmxhbW1lbmt1Z2VsbiBldGMuIG51ciBlaW4gT2JqZWt0IHNpbmQ/IE5hamEsCmVnYWwgOi0pCgpFcyBnaWJ0IHp1ciBaZWl0IHp3ZWkgQXVzbmFobWVuIHZvbiBkZXIgRFJFSS1HRUdFTlNUQUVOREUtUkVHRUw6CkRhcyBHZWxkICg6LSkpIHVuZCBkaWUgWmF1YmVyenV0YXRlbiBkZXIgbm9jaCBuaWNodCB2b3JoYW5kZW5lbgpaYXViZXJlciEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXNuYWhtZW4gLi4uIChEdXJpYW4sICAzLiBBcHIgMTk5NiwgMTY6MzE6NDYpOgpIYWxsbyB6dXNhbW1lbiEKCkhpZXIgZWluZSBrbGVpbmUsIGFrdHVlbGxlIExpc3RlLCBhbGxlciBBdXNuYWhtZW4gdm9uIGRlcgozLUdlZ2Vuc3RhZW5kZS1SZWdlbApiZWltIFNlaGVyd2V0dGJld2VyYiB1bmQgZGVyIEdsYWRpYXRvcnF1ZXN0OgoKLSBaYXViZXJ6dXRhdGVuCi0gYXVmZ3J1bmQgZGVzIHZpZWxmYWNoZW4gV3Vuc2NoZXMgZGVyIEh5ZHJhc2NobGFlY2h0ZXIgTWFoYXRtYSB1bmQgS2hpZGFyCiAgZGllIEh5ZHJhaG9lcm5lcgotIGF1cyBzZWxiaW5nZW0gR3J1bmQgZGllIEh5ZHJhcnVlc3R1bmcKLSBhY2hqYSwgdW5kIGRhcyBHZWxkIDotKQoKRGllIEh5ZHJhc2FjaGVuIGVyc3QgbmFjaCBkZW0gbmFlY2hzdGVuIFJlYm9vdC9DcmFzaC4KCldlciBub2NoIFNhY2hlbiB3ZWlzcywgZGllIGF1ZiBkaWVzZSBMaXN0ZSBnZWhvZXJlbiAtPiBtYWlsIQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBdXNuYWhtZW4gLi4uIChBc21vZGlzLCAgMy4gQXByIDE5OTYsIDE4OjAxOjU0KToKfiMhIHJuPUR1cmlhbiBydD04Mjg1NDE5MDYKfiMhIHRpZD04Mjg1NDE5MDYKSHlkcmFydWVzdHVuZz8gbWFuIGhhdCBkb2NoIGtlaW5lIDMgSHlkcmFydWVzdHVuZ2VuIGJlaSBzaWNoIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEF1c25haG1lbiAuLi4gKE1haGF0bWEsICAzLiBBcHIgMTk5NiwgMTg6MTE6NTEpOgp+IyEgcm49QXNtb2RpcyBydD04Mjg1NDczMTQKfiMhIHRpZD04Mjg1NDE5MDYKCkJpc3QgRHUgRGlyIGRhIGdhbnogc2ljaGVyPwoKPiBpIC1hCkVpbiBGcmV1bmRzY2hhZnRzYmFuZCAoZ2V0cmFnZW4pLgo1MyBIb2VybmVyIGRlciBIeWRyYS4KRWluIGtsZWluZXIgZ3JhdWVyIEthc3Rlbi4KRGllIFJ1ZXN0dW5nIGRlcyBIeWRyYXRvZXRlcnMgKGFuZ2V6b2dlbikuCkRpZSBSdWVzdHVuZyBkZXMgSHlkcmF0b2V0ZXJzLgpEaWUgUnVlc3R1bmcgZGVzIEh5ZHJhdG9ldGVycy4KRWluIFdlY2tlciAoTHV4dXNhdXNnYWJlKS4KRGVyIDYuIFRlaWwgdm9tIHplcmlzc2VuZW4gUGxhbi4KRWluZSBFaW5sYWR1bmcuCk1haGF0bWFzIFRlZGR5YmFlciBHYW5kaGkuCkVpbmUgV3VuZGVybGFtcGUuCkRhcyBTZXJ2aWNlcGFrZXQgdm9uIE1vcmdlbmdyYXVlbnMgUHJlc3NlYWdlbnR1ci4KRWluIFNjaGllYmVwdXp6bGUuCkVpbmUgS3Jpc3RhbGxrdWdlbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEF1c25haG1lbiAuLi4gKEFzbW9kaXMsICA0LiBBcHIgMTk5NiwgMTA6MTU6MjApOgp+IyEgcm49TWFoYXRtYSBydD04Mjg1NDc5MTEKfiMhIHRpZD04Mjg1NDE5MDYKTnVyIHdvenU/IFdlbm4gZHUgbm9jaCA0IFJ1ZXN0dW5nZW4gZXJnYXR0ZXJzdCwga2FubnN0ZSBqZWRlbiBUYWcKZGVyIFdvY2hlIG5lIGFuZGVyZSBhbnppZWhlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQXVzbmFobWVuIC4uLiAoTWFoYXRtYSwgIDQuIEFwciAxOTk2LCAxMjozNzoyNCk6Cn4jISBybj1Bc21vZGlzIHJ0PTgyODYwNTcyMAp+IyEgdGlkPTgyODU0MTkwNgpKZXR6dCBoYWIgaWNoIGVpbmUgZnVlciBtb3JnZW5zLCBlaW5lIGZ1ZXIgbWl0dGFncyB1bmQgZWluZSBmdWVyIGFiZW5kcy4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkludmFzaW9uIGluIERqZWxpYmVieSAoQ2F0d2VhemxlLCAxMS4gQXByIDE5OTYsIDEzOjM4OjA5KToKSGkhCgpJY2ggaGFiIGdyYWRlIG1hbCBEamVsaWJlYnkgbWl0IE1vbnN0ZXJuIHZvbGxnZXBhY2t0LgpFcyBzaW5kIGFsbGVzIGVpbmZhY2hlIHVuZCBrbGVpbmUgTW9uc3RlciB1bmQgc2luZCBmdWVyIEFuZmFlbmdlcgpnZWRhY2h0LgpJY2ggd2FlcmUgRXVjaCBkYW5rYmFyLCB3ZW5uIGRpZSBtYWwgamVtYW5kIGF1c3Byb2JpZXJlbiBrb2VubnRlIHVuZAptaXIgZGFubiBtYWlsZW4sIG9iIGRpZSB6dSBndXQsIHp1IHNjaGxlY2h0LCB6dSBvZWRlLCB6dSBhbnNwcnVjaHN2b2xsLAp6dSBzY2h3aWVyaWcsIHp1IGxlaWNodCBmdWVyIEFuZmFlbmdlciBzaW5kLgpUaGFueCBpbiBhZHZhbmNlLAogIFlvdXJzIHRydWx5LAogICAgICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJbnZhc2lvbiBpbiBEamVsaWJlYnkgKFNpbHZhbmEsIDE1LiBBcHIgMTk5NiwgMTA6MDY6MDgpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTgyOTIyMjY4OQp+IyEgdGlkPTgyOTIyMjY4OQpIbW0sIGVpZ2VudGxpY2ggaGF0IGRhcyBNdWQgamEgZWluIHBhYXIgQW5mYWVuZ2VyLUdlZ2VuZGVuIG5vZXRpZywgYWJlcgphdXNnZXJlY2huZXQgYW0gaGludGVybGV0emVuIEVuZGUgZGllc2VyIGVpbnRvZW5pZy1sYW5nd2VpbGlnZW4gV3Vlc3RlPwoKTnVyIDIgV2FsZC1QZmVubmlnZSAtIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSW52YXNpb24gaW4gRGplbGliZWJ5IChLcmV0ZWssIDE1LiBBcHIgMTk5NiwgMTE6MjM6MzgpOgp+IyEgcm49U2lsdmFuYSBydD04Mjk1NTU1NjgKfiMhIHRpZD04MjkyMjI2ODkKRGFtaXQgaGF0IFNpbHZhbmEgc2Nob24gKHdpZWRlciBlaW5tYWwuLi4pIG1pdCB6d2VpIFNhY2hlbiB2b2VsbGlnIFJlY2h0OgoxKSBEYXMgTUcgYnJhdWNodCB0YXRzYWVjaGxpY2ggQW5mYWVuZ2VyLUdlZ2VuZGVuCjIpIFd1ZXN0ZSBpc3QgaW4gZGVyIFRhdCBkaWUgd29obCBsYW5nd2VpbGlnc3RlLCBvZWRlc3RlIHVuZCBlaW5mYWxscy0KICAgbG9zZXN0ZSBSZWdpb24gZGVzIE1HLiBFaW4gcG9zaXRpdmVzIEdlZ2VuYmVpc3BpZWwgc3RlbGx0IFBvbGFyIGRhciwKICAgZGFzIHNvenVzYWdlbiBlaW4gVHVtbWVscGxhdHogZGVyIGtyZWF0aXZzdGVuIChjcmVhdGl2J3N0ZW4/KSwKICAgZmxlaXNzaWdzdGVuIHVuZCB0YWxlbnRpZXJ0ZXN0ZW4gTWFnaWVyIGRlcyBNRyBpc3QuCgpLcmVURUsKKG5pY2h0IGhhdWVuLCBhdWEsIGF1YSEhISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEludmFzaW9uIGluIERqZWxpYmVieSAoQ3JlYXRpdmUsIDE1LiBBcHIgMTk5NiwgMTE6NDY6MjUpOgp+IyEgcm49S3JldGVrIHJ0PTgyOTU2MDIxOAp+IyEgdGlkPTgyOTIyMjY4OQoKSWNoIGJpbiBJbnNlbG1hZ2llci4KVW5kIG5pY2h0IFBvbGFyLgpVbmQgZXMgaXMgd2FzIGluIEFyYmVpdC4KCi1DcmVhLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEludmFzaW9uIGluIERqZWxpYmVieSAoV2FyZ29uLCAxNS4gQXByIDE5OTYsIDEyOjE2OjExKToKfiMhIHJuPUNyZWF0aXZlIHJ0PTgyOTU2MTU4NQp+IyEgdGlkPTgyOTIyMjY4OQpXaWVzbyB0YXVjaGVuIHNvbGNoZSBBcnRpa2VsIGVpZ2VudGxpY2ggaW1tZXIgaW4gZC53dWVzdGUgYXVmPyA7KSkpKSkKICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEludmFzaW9uIGluIERqZWxpYmVieSAoQXNtb2RpcywgMTUuIEFwciAxOTk2LCAxMjoyNjo1OCk6Cn4jISBybj1XYXJnb24gcnQ9ODI5NTYzMzcxCn4jISB0aWQ9ODI5MjIyNjg5CldlaWwgZGllIFJ1YnJpayBzb25zdCBzbyBsZWVyIGlzdCA/IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBJbnZhc2lvbiBpbiBEamVsaWJlYnkgKFJhZmZpLCAxNS4gQXByIDE5OTYsIDEyOjQwOjQ4KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODI5NTY0MDE4Cn4jISB0aWQ9ODI5MjIyNjg5ClZpZWxlaWNodCB3ZWlsIGVzIGVpbmUgV1VFU1RFIFJ1YnJpayAgaXN0ID8KCkdydXNzCkguCihzb3JyeSBrb25udGUgZWluZmFjaCBuaWNodCB3aWVkZXJzdHRlaGVuLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEludmFzaW9uIGluIERqZWxpYmVieSAoTXVwZmVsLCAxNS4gQXByIDE5OTYsIDIwOjMyOjMzKToKfiMhIHJuPVdhcmdvbiBydD04Mjk1NjMzNzEKfiMhIHRpZD04MjkyMjI2ODkKV2VpbCBpbW1lciBtYWwgd2llZGVyIGVpbmVyIGhvZmZ0LCBEYW5jZXIgenUgbmVyIEFud29ydCB6dSBicmluZ2VuPyA6LSkKCi1tdXBmZWwtCnAucy46IHdlbm4gZGllIGFjaHNvd2VpdGUgd3Vlc3RlIG5pY2h0IGdlbmVobSBpc3QsIHdhcnVtIHJhZmZ0IHNpY2ggbmljaHQgbWFsCmVpbmVyIGRlciB3YWxkc2NocmF0ZSBhdWYsIGVpbiBwYWFyIGthcm5pY2tlbCB6dSB2ZXJ0ZWlsZW4gKG9rb2sgc2lsdmFuYQoqdmVydGVpbHQqIGthcm5pY2tlbCAtIGFiZXIgZWhlciBpbmRpcmVrdCA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEludmFzaW9uIGluIERqZWxpYmVieSAoSGFyZGlsLCAxNi4gQXByIDE5OTYsIDEyOjUxOjUzKToKfiMhIHJuPUtyZXRlayBydD04Mjk1NjAyMTgKfiMhIHRpZD04MjkyMjI2ODkKCkRhcyBpc3QgZ2VtZWluLiBLYXVtIGlzdCBEdXJpYW4gbWFsIGVpbiBwYWFyIFdvY2hlbiBuaWNodCBkYSAoaW4gZGVyIGdyb3NzZW4KV3Vlc3RlIG5hbWVucyBVU0EpLCBzY2hvbiBoYWNrZW4gYWxsZSBhdWYgZGVyIFd1ZXN0ZSBoZXJ1bS4uLiA6KQpJaHIgd2VyZGV0IHNjaG9uIHNlaGVuLCB3YXMgaWhyIGRhdm9uIGhhYnQuIERpZSBHaWxkZSBkZXIgV3Vlc3RlbnphdWJlcmVyIGlzdApmYXN0IGZlcnRpZywgaGFiZSBpY2ggZ2Vob2VydC4gVW5kIGRhbm4gd2lyZCBhbGxlcyBlaW5nZXNhbmRldC4uLgoKSGFyZGlsIGJyZWl0ZXQgc2VpbmUgSGFlbmRlIGF1cyB1ZG4gc2FndDogU0FORCEKRXMgYmVnaW5udCBTYW5kIHp1IHJlZ25lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEludmFzaW9uIGluIERqZWxpYmVieSAoV2FyZ29uLCAxNy4gQXByIDE5OTYsIDEwOjA3OjAzKToKfiMhIHJuPUhhcmRpbCBydD04Mjk2NTE5MTMKfiMhIHRpZD04MjkyMjI2ODkKTmFuYW5hLi4uIHdpciBoYWNrZW4gYXVjaCBhdWYgZGVyIFd1ZXN0ZSBydW0sIFdFTk4gRHVyaWFuIGRhIGlzdC4gOykKICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEludmFzaW9uIGluIERqZWxpYmVieSAoQ3JlYXRpdmUsIDE3LiBBcHIgMTk5NiwgMTA6MzQ6MjgpOgp+IyEgcm49V2FyZ29uIHJ0PTgyOTcyODQyMwp+IyEgdGlkPTgyOTIyMjY4OQoKQmxvc3MgcmVwbGllbiB0cmF1dCBlciBzaWNoIG5pY2h0IG1laHIgOikKCi1DcmVhLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEludmFzaW9uIGluIERqZWxpYmVieSAoU2lsdmFuYSwgMTguIEFwciAxOTk2LCAwOTowMjo1Myk6Cn4jISBybj1NdXBmZWwgcnQ9ODI5NTkzMTUzCn4jISB0aWQ9ODI5MjIyNjg5CkphLCBzb2xsIGljaCBtaXIgZGVubiBkaWUgTXVlaGUgbWFjaGVuLCBkaWVzZW4gZ2FuemVuIFNhbmRrYXN0ZW4gbWl0Ckthcm5pY2tlbG4gdm9sbHp1c3RvcGZlbiwgd2VubiBkaWUgU3BpZWxlciBkYXMgc28gZ2VybmUgZnJlaXdpbGxpZyBmdXIKbWljaCBtYWNoZW4/CgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClphdWJlcmVyLU5QQydzIC4uLiAoRHVyaWFuLCAxNi4gTWFpIDE5OTYsIDEyOjQxOjM4KToKCkhhbGxvIHp1c2FtbWVuIQoKRW5kbGljaCBoYXQgZXMgbWlyIGRhcyBMQUcgbWFsIGVybGF1YnQsIGVpbmUgbm90d2VuZGlnZSBBZW5kZXJ1bmcgYW4KZGVyIEFyZW5hIGR1cmNoenVmdWVocmVuLiBCaXNsYW5nIHd1cmRlbiBkaWUgWmF1YmVyZXItTlBDJ3Mgdm9tIApTY2hpZWRzcmljaHRlciB2b2xsZXIgVGF0ZW5kcmFuZyBhdWYgZGllIFRyaWJ1ZW5lbiBnZXNjaGlja3QuIERpZXMgaXN0CmpldHp0IG5pY2h0IG1laHIgc28uIEV1cmVyIFNjaGF0dGVuIG9kZXJ3YXN3ZWlzc2ljaCBzb2xsdGVuIEV1Y2ggamV0enQgYXVjaAppbiBkZXIgQXJlbmEgaGlsZnJlaWNoIHp1ciBTZWl0ZSBzdGVoZW4hCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTkVVRVJPRUZGTlVORyEhISEgKER1cmlhbiwgMTMuIEp1biAxOTk2LCAxNTo0MToyMCk6CgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAgKiAgIEVST0VGRk5VTkcgRVJPRUZGTlVORyBFUk9FRkZOVU5HIEVST0VGRk5VTkcgRVJPRUZGTlVORyAgKgogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAqICAgICAgICAgTmFjaCBkcmVpamFlaHJpZ2VyIEJhdS0gdW5kIFBsYW51bmdzemVpdCAgICAgICAgICAqCiAgKiAgICAgICAgICAgICAgICAgIGhhdCBoZXV0ZSBlbmRsaWNoIGRpZSAgICAgICAgICAgICAgICAgICAgKgogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAqICAgICAgICAgICAgICAgTW9yZ2VuR3JhdWVuIFRpZXJoYW5kbHVuZyAgICAgICAgICAgICAgICAgICAqCiAgKiAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gICAgICAgICAgICAgICAgICAgKgogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAqICAgICAgaWhyZSBUdWVyZW4gZnVlciBkaWUgT2VmZmVudGxpY2hrZWl0IGdlb2VmZm5ldCEgICAgICAqCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogICogIFdvbGx0ZW4gU2llIGltbWVyIG1hbCBlaW5lbiBlaWdlbmVuIEh1bmQsIGVpbmUgZWlnZW5lICAgICoKICAqICBLYXR6ZSBvZGVyIGVpbmVuIGVpZ2VuZW4gUGFwYWdlaSBiZXNpdHplbj8gRGFubiBzaW5kIFNpZSAqCiAgKiAgaW4gZGVyIE1vcmdlbkdyYXVlbiBUaWVyaGFuZGx1bmcgYW4gZGVyIHJpY2h0aWdlbiAgICAgICAgKgogICogIEFkcmVzc2UuIFdpZSBiaWV0ZW4gSWhuZW4gZWluZW4gRnJldW5kIGZ1ZXIncyBMZWJlbiwgICAgICoKICAqICBlaW5lbiBQYXJ0bmVyIHp1bSBTY2htdXNlbiBvZGVyIGVpbmZhY2ggZWluZW4gbHVzdGlnZW4gICAqCiAgKiAgR2VmYWVocnRlbiEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAqICBTaWUgZmluZGVuIHVucyBpbiBkZW0ga2xlaW5lbiBTdGFlZHRjaGVuIExhc2gsIGRlbSAgICAgICAqCiAgKiAgZ2VtdWV0bGljaGVuIE9ydCBpbiBkZXIgV3Vlc3RlISAgICAgICAgICAgICAgICAgICAgICAgICAgKgogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5FVUVST0VGRk5VTkchISEhIChEdXJpYW4sIDEzLiBKdW4gMTk5NiwgMTU6NDY6MzYpOgp+IyEgcm49RHVyaWFuIHJ0PTgzNDY3MzI4MAp+IyEgdGlkPTgzNDY3MzI4MAoKSGFsbG8genVzYW1tZW4hCgpJbiBiZXN0ZXIgV3Vlc3Rlbm1hbmllciBoYWJlIGljaCBudXIgaW5zZ2VzYW10IDMgSmFocmUgZnVlciBkaWUgVGllcmUKZ2VicmF1Y2h0LiBEYSBkYWhlciBkYXMgZWluZSBvZGVyIGFuZGVyZSBUaWVyIHRyb3R6IG1laW5lciBuYWNodHJhZWdsaWNoZW4KVmVyYmVzc2VydW5nZW4gdmllbGxlaWNodCBoaWVyIHVuZCBkYSBlaW5lIC4uLiBVbmdlbmF1aWdrZWl0IGJlc2l0emVuLAp3YWVyZSBlcyB0b2xsLCB3ZW5uIElociBtaXIgZWluZW4gQnJpZWYgbWl0IGVpbmVyIEJlc2NocmVpYnVuZyBkZXIKVW5nZW5hdWlna2VpdCBzY2hpY2tlbiBrb2VubnRldCEKCldlbm4gSWhyIHdlaXRlcmhpbiBJZGVlbiBmdWVyIGFuZGVyZSBUaWVyZSBoYWJ0LCBvZGVyIHdlbm4gSWhyIGRpZQpiZXJlaXRzIHZvcmhhbmRlbmVuIGFuIHZlcnNjaGllZGVuZW4gU3RlbGxlbiBnZXJuZSB2ZXJiZXNzZXJ0IGhhZXR0ZXQ6Cm51ciB6dS4gSWNoIHJlaWhlIHNpZSBpbiBtZWluZSBydW5xdWV1ZSBlaW4gOy0pCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBORVVFUk9FRkZOVU5HISEhISAoQXNtb2RpcywgMTMuIEp1biAxOTk2LCAxOTowMjo0OCk6Cn4jISBybj1EdXJpYW4gcnQ9ODM0NjczNTk2Cn4jISB0aWQ9ODM0NjczMjgwCmlzdCBhYmVyIG5lIHRvbGxlIHNhY2hlLCBkZXIgU2NoYWVmZXJodW5kLCBEYW5rZSwgRGFuY15IXkheSHVyaWFuCgoKUC5TLjogIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBORVVFUk9FRkZOVU5HISEhISAoQ2FyYWRocmFzLCAxMy4gSnVuIDE5OTYsIDIwOjAzOjU5KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODM0Njg1MzY4Cn4jISB0aWQ9ODM0NjczMjgwCk9wcHMsIEFzbW9kaXMgaXN0IGF1ZiBkZW4gSHVuZCBnZWtvbW1lbj8gCgogICAgICAgICdTIEdvbGRkcmFlY2hsZSBDYXJhZGhyYXMga2ljaGVydAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTkVVRVJPRUZGTlVORyEhISEgKEFzbW9kaXMsIDEzLiBKdW4gMTk5NiwgMjA6MTM6MzYpOgp+IyEgcm49Q2FyYWRocmFzIHJ0PTgzNDY4OTAzOQp+IyEgdGlkPTgzNDY3MzI4MApLbGFyLCBpY2ggaGFiIGpldHp0IG5lbiBIb2VsbGVuaHVuZCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFtZW4gZGVyIFRpZXJlIC4uLiAoRHVyaWFuLCAxNC4gSnVuIDE5OTYsIDEzOjA5OjMxKToKCkhhbGxvIHp1c2FtbWVuIQoKTGVpZGVyIGlzdCBlcyBkb2NoIG5pY2h0IHNvIHByb2JsZW1sb3MsIHdpZSBpY2ggaG9mZnRlLiBBdXMgZ2VnZWJlbmVtCkFubGFzcyBoYWJlIGljaCBqZXR6dCBmb2xnZW5kZSBNb2VnbGljaGtlaXQgZWluZ2ViYXV0OiBKZWRlciwgU3BpZWxlcgp1bmQgTWFnaWVyLCBrb2VubmVuIElocmVuIE5hbWVuIGZ1ZXIgZGllIFRpZXJlIG51biB2ZXJiaWV0ZW4uIERhenUKa2FubiBtYW4gaW4gZGVyIFRpZXJoYW5kbHVuZyB6b29iYW5pc2ggZWluZ2ViZW4uIERhbm4gd2lyZCBlcyBmb3J0YW4gCm5pY2h0IG1laHIgbW9lZ2xpY2ggc2VpbiwgZWluIFRpZXIgbWl0IHNlaW5lbSBOYW1lbiB6dSBrYXVmZW4uIFNvbGx0ZSBlcwpiZXJlaXRzIGVpbiBUaWVyIG1pdCBkaWVzZW0gTmFtZW4gZ2ViZW4sIHNvIGJla29tbXQgZGVyIGVudHNwcmVjaGVuZGUKQmVzaXR6ZXIgc2VpbmVuIEthdWZwcmVpcyB6dXJ1ZWNrIHVuZCBkYXMgVGllciB2ZXJzY2h3aW5kZXQuIEVyIGthbm4gc2ljaApkYW5uIGVpbiBuZXVlcyBUaWVyIG1pdCBhbmRlcmVtIE5hbWVuIGJlc29yZ2VuLgoKU3BlemllbGwgbGV0enRlcmVzIHdpcmQgZXJzdCBuYWNoIG1laW5lbSBFaW5iYXUgKHNvIGhldXRlIGFiZW5kLCBvZGVyIHNvKQp1bmQgbmFjaCBlbmRlIGRlcyBTcGllbGVycyBvZGVyIHJlYm9vdCBha3Rpdi4gSWNoIG5laG1lIGRhcyBSZWNodCBpbgpBbnNwcnVjaCwgZGllIFNhY2hlIHdlbm4gbW9lZ2xpY2gsIHp1YmVzY2hsZXVuaWdlbi4KCkdydXNzLAoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiBkZXIgVGllcmUgLi4uIChIYXJkaWwsIDE0LiBKdW4gMTk5NiwgMTM6MTE6NTcpOgp+IyEgcm49RHVyaWFuIHJ0PTgzNDc1MDU3MQp+IyEgdGlkPTgzNDc1MDU3MQoKR2lidHMgaW4gZGVyIFRpZXJoYW5kbHVuZyBlaWdlbnRsaWNoIGFsbGVzLHdhcyBtYW4gZnVlciBkaWUgV09scGllLVF1ZXN0CmJyYXVjaHQsIGVpbnplbG4genUga2F1ZmVuPwpPZGVyIHNvZ2FyIGZlcnRpZ2UgV09scGllcz8gRGFzIHdpcmQgS2V0b3MgZ2FyIG5ldCBnZXJuZSBob2VyZW4uCgotSGFyZGlsLiBXYXJ0ZXQgamV0enQgYXVmIGRlbiBTY2hhZWZlcmh1bmR6dWNodHZlcmVpbiwgVmVyZWluIGRlcgpLYW5pbmNoZW56dWVjaHRlciB1bmQgZGllIEthdHplbmtyYXVsZXJydW5kZSwgYWxsZSBtaXQgVmVyZWluc2hlaW0gaW4gUFYuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6aGlsZmUgKER1cmlhbiwgMTQuIEp1biAxOTk2LCAxNzowNzoyMSk6CgpIYWxsbyEKCkRlbiBaYXViZXJlcm4genVsaWViZSBoZWlzc3QgemhpbGZlIGpldHp0IHRoaWxmZS4gVW5kIHdlciB3YXMgZ2VnZW4gdGhpbGZlCmhhdCAuLi4gZGVyIGthbm4gZGFzIGZ1ZXIgc2ljaCBiZWhhbHRlbiA6LSkKCi0gRHVyaWFuLCBUaWVyZG9tcHRldXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB6aGlsZmUgKER1cmlhbiwgMTQuIEp1biAxOTk2LCAxNzowNzo1Mik6Cn4jISBybj1EdXJpYW4gcnQ9ODM0NzY0ODQxCn4jISB0aWQ9ODM0NzY0ODQxCgpOYWNodHJhZzogV2llIGFsbGVzIGVyc3QgbmFjaCBlbmRlLCByZWJvb3QuCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hbWVuIGRlciBUaWVyZSAuLi4gKEFzbW9kaXMsIDE0LiBKdW4gMTk5NiwgMTc6NTA6NTIpOgp+IyEgcm49RHVyaWFuIHJ0PTgzNDc1MDU3MQp+IyEgdGlkPTgzNDc1MDU3MQpPY2gsIGRhcyB3YXIgZG9jaCBzbyBsdXN0aWcsIGJlc29uZGVycyBkZXIgQWZmZSBIYXRlIDopCkljaCBiZW51dHplIGFiZXIgbGllYmVyIE1vbnN0ZXJuYW1lbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYW1lbiBkZXIgVGllcmUgLi4uIChBenp1cm8sIDE3LiBKdW4gMTk5NiwgMDA6MDY6NDMpOgp+IyEgcm49SGFyZGlsIHJ0PTgzNDc1MDcxNwp+IyEgdGlkPTgzNDc1MDU3MQo6IEhhcmRpbC4gV2FydGV0IGpldHp0IGF1ZiBkZW4gU2NoYWVmZXJodW5kenVjaHR2ZXJlaW4sIFZlcmluIGRlcgprYW5pbmNoZW56dWVjaHRlciB1bmQgZGllIEthdHplbmtyYXVsZXJydW5kZSwgYWxsZSBtaXQgVmVyZWluc2hlaW0gaW4gUFYuIDopCgpEaWUgSWRlZSBpc3QgZ2FyIG5pY2h0IHNvIHNjaGxlY2h0LiBEdXJpYW4sIHVlYmVybGVnIERpciBkb2NoIG1hbCwgb2IgbWFuIGRpZQpIdW5kZSBuaWNodCBhYnJpY2h0ZW4ga2FubiBhdWYgT3JrZmxlaXNjaC4uLi4KVm9uIGtsZWluZW4gU3RyZWljaGVsdGllcmVuIHp1IGZpZXNlbiBLYW1wZmh1bmRlbi4KQXp6dXJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gZGVyIFRpZXJlIC4uLiAoTW9yZ290aCwgMTcuIEp1biAxOTk2LCAwOTo0OToxNSk6Cn4jISBybj1EdXJpYW4gcnQ9ODM0NzUwNTcxCn4jISB0aWQ9ODM0NzUwNTcxCm1hY2ggZG9jaCBlaW5mYWNoIGVpbgppZihmaWxlX3NpemUoIi9zZWN1cmVkL3NhdmUvIituYW1lX2Rlc190aWVyc1swXSsiLyIrbmFtZV9kZXNfdGllcnMrIi5vIik+MCkgLT4KZ29pYnRzIG5pY2gKbXVlc3N0ZSBkb2NoIGdlaGVuLCBvZGVyPwpNb3Jnb3RoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hbWVuIGRlciBUaWVyZSAuLi4gKEdyaW1tYm9ybiwgMTcuIEp1biAxOTk2LCAxMDoxNDozNyk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTgzNDk5Nzc1NQp+IyEgdGlkPTgzNDc1MDU3MQpXb3p1PyBFcyBnaW5nIG5pZSBkYXJ1bSwgZ2VuZXJlbGwgU3BpZWxlcm5hbWVuIHp1IHZlcmJpZXRlbiwgbnVyIGRlbmVuLCBkaWUKaHVtb3Jsb3MgZ2VudWcgc2luZCBpaHJlbiBOYW1lbiBuaWNodCBtaXQgZWluZW0gVGllciB0ZWlsZW4genUgd29sbGVuIChhbHNvCnouQi4gbWlyKSBkaWUgR2VsZWdlbmhlaXQgenUgZ2ViZW4sIGRhcyB6dSB2ZXJoaW5kZXJuLi4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0aWxsIGZvbGdlbmRlIFRpZXJlIC4uLiAoRHVyaWFuLCAxNy4gSnVuIDE5OTYsIDEyOjMwOjQxKToKCkhhaSB6dXNhbW1lbiEKCk5pY2h0IHdlbmlnZSAoc28gMTAgb2RlciBzbyA6LSkpIHZvbiBFdWNoIGJhdGVuIG1pY2gsIGRlbiBUaWVyZW4gYmVpenUtCmJyaW5nZW4sIEV1Y2ggc3RpbGwgenUgZm9sZ2VuLCB3ZW5uIElociBpbSBVbHRyYWt1cnptb2R1cyBpcmdlbmR3ZWxjaGUKV2VnZXNjcmlwdGUgYWJsYXVmdC4gSWNoIGhhYmUgbWlyIGVpbiBwYWFyIEdlZGFua2VuIGdlbWFjaHQsIGFiZXIgbmljaHRzCmhhdCBtaXIgZ2VmYWxsZW4sIGJpcyBhdWYgZGllIGdsb3JyZWljaGUgSWRlZSBrYW06IGRhcyBnZWh0IHNjaG9uIQpOZWhtdCB6dSBCZWdpbm4gRXVyZXMgV2VnZXNrcmlwdGVzIGRpZSBUaWVyZSBhdWYgZGVuIEFybSAob2RlciBpbiBkZW4gS2FlZmlnKQp1bmQgYW0gRW5kZSBzZXR6dCBJaHIgc2llIHdpZWRlciBhYiAobGFzc3QgSWhyIHNpZSB3aWVkZXIgcmF1cykuCgpFcmZ1ZWxsdCBkZW5zZWxiZW4gWndlY2shCgpHcnVzcywKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogemhpbGZlIChTaWx2YW5hLCAxOC4gSnVuIDE5OTYsIDA4OjM0OjQxKToKfiMhIHJuPUR1cmlhbiBydD04MzQ3NjQ4NDEKfiMhIHRpZD04MzQ3NjQ4NDEKSWNoIG1hZyBtaWNoIGphIHRhZXVzY2hlbiwgYWJlciBtaXIgaXN0IGtlaW4gWmF1YmVyZXItQmVmZWhsIGJla2FubnQsCmRlciAnemhpbGZlJyBoaWVzc2UuLi4gCgogIFNpbHZhbmEgKGdydWViZWxuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogemhpbGZlIChEdXJpYW4sIDE4LiBKdW4gMTk5NiwgMTA6NDE6MjcpOgp+IyEgcm49U2lsdmFuYSBydD04MzUwNzk2ODEKfiMhIHRpZD04MzQ3NjQ4NDEKSEFBQUFSUlJSUkRERERERElJSUlJSUxMTExMISEhIQoKV2llZGVyIDEwIE1pbnV0ZW4gdW1zb25zdCA6LSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFcndlaXRlcnVuZ2VuIChEdXJpYW4sIDE4LiBKdW4gMTk5NiwgMTM6MDQ6NDApOgoKSGFsbG8gVGllcmxpZWJoYWJlciEKClp1ZXJzdCBlaW5tYWwsIGVzIHdlcmRlbiBzaWNoIGltbGF1ZmUgZGVyIFplaXQgaW1tZXIgbWVociBmZWF0dXJlcyBpbiBkZW4KVGllcmVuIGFuc2FtbWVsbiAoZ2xhdWJlIGljaCA6LSkpLiBEaWVzZSB3ZXJkZSBpY2ggbmljaHQgYWxsZSBhbmt1ZW5kaWdlbiwKaGluIHVuZCB3aWVkZXIgZWluIEJsaWNrIGF1ZiAndGhpbGZlJyBoaWxmdCBkYSBtYW5jaG1hbCBXdW5kZXIuCgpHYW56IGt1cno6IGRlciBIdW5kIGthbm4gamV0enQgdG90ZXIgTWFubiwgZGllIEthdHplbiBrYW5uIG1hbiBrcmF1bGVuCnVuZCBkaWUga29lbm5lbiBhdWNoIHdhcyBuZXVlcy4gSG0sIGRhcyB3YXIgZXMgZXJzdG1hbC4KCkhhbHQgbmVpbiwgZGFzIHdpY2h0aWdzdGU6IGVzIGdpYnQgZWluIG5ldWVzIFRpZXI6IGVpbmUgTWF1cy4gTWFuCmthbm4gamV0enQgYXVjaCBlaW5lIGtsZWluZSB3ZWlzc2UgTWF1cyBrYXVmZW4sIGRpZSBlaW4gcGFhciBLdW5zdHN0dWVja2UKa2FubiEKClZpZWwgU3Bhc3MgZGFiZWkhCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVyd2VpdGVydW5nZW4gKEJlbmRlaWdpZCwgMTguIEp1biAxOTk2LCAxNzoyMTowOSk6Cn4jISBybj1EdXJpYW4gcnQ9ODM1MDk1ODgwCn4jISB0aWQ9ODM1MDk1ODgwClNpbmQgZGFzIGRpZSBLdW5zdHN0dWVja2UsIGRpZSBkaWUgZ2FuemVuIFZpZWNoZXIgYXVmIERlYnVnIGJyaW5nZW4/IGhtPyA6KQpCYXUgZXJzdG1hbCBkaWUgdmllbGVuIHN1ZXNzZW4ga2xlaW5lbiBCdWdzIGF1cywgbWVpbiBsaWViZXIgRGFuY2VyLgpCZW5kZWlnaWQgZGVua3QgLiBvIE8gKCBEaWVzZSBTYW5kdGlnZXIgaGFiZW4gU2FuZCBpbSBEZW5rYXBwYXJhdCkKCkdyaW5zZW5kIGF1ZiBEZWJ1ZyBzY2hpZWxlbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgQmVuZGVpZ2lkLCBrdWVobGVyIFBvbGFybWFnaWVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVyd2VpdGVydW5nZW4gKER1cmlhbiwgMTguIEp1biAxOTk2LCAxNzoyMzo1Nyk6Cn4jISBybj1CZW5kZWlnaWQgcnQ9ODM1MTExMjY5Cn4jISB0aWQ9ODM1MDk1ODgwCjEpIEtlaW4gRGVidWcgc2VpdCAzIE1pbnV0XkheSF5IXkheSFN0dW5kZW4uCjIpIEljaCBiaW4ga2VpbiBTYW5kdGlnZXIhCjMpIFdhcyBpc3QgUG9sYXI/PwoKOy0pCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRXJ3ZWl0ZXJ1bmdlbiAoQmVuZGVpZ2lkLCAxOC4gSnVuIDE5OTYsIDE3OjI3OjI5KToKfiMhIHJuPUR1cmlhbiBydD04MzUxMTE0MzcKfiMhIHRpZD04MzUwOTU4ODAKS29tbXQgZGllIER1ZW5lIG51IGlucyBydXRzY2hlbj8gRGFiZWkgaGFidCBpaHIgZG9jaCBzb29vbyBzY2hvZW4gZ2VzdHJldXQgYmVpCmV1Y2guIER1bW1kaWR1bW0uLi4KUG9sYXIgaXN0IGRhLCB3b3Mgc28gc2Nob2VuIGlzdCwgZGFzcyBpaHIgbmVpZGlzY2ggd3VlcmRldCwgd2VubiBpaHIgc28gd2VpdApsYXVmZW4ga29lbm50ZXQuIExlaWRlciBzaW5kIEV1cmUgQmVpbmVnZWxlbmtlIGxvY2tlciB2ZXJzYW5kZXQsIGRhaGVyIHdlcmRldAppaHIgZGFzIG5pZSBzZWhlbi4gVW5kIEV1ZXIgS3JlaXNsYXVmIHd1ZXJkZSB2ZXJtdXRsaWNoIHp1c2FtbWVuYnJlY2hlbiwgd2V3aWwKaWhyIGV1Y2ggc2NoYWVtZW4gbXVlc3N0ZXQuIEdpYnQgamEgbmljaG1hbCBCYWV1bWUgYmVpIGV1Y2ghCgpaJ3BhciBTZXJ2dSwKICAgICAgICAgICAgQmVuZGVpZ2lkLCBtYWNodCBkLnd1ZXN0ZSBnbGVpY2ggenUgc2NobWFycm4yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFcndlaXRlcnVuZ2VuIChEdXJpYW4sIDE4LiBKdW4gMTk5NiwgMTc6Mjk6MTEpOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTgzNTExMTY0OQp+IyEgdGlkPTgzNTA5NTg4MAo6ICBCZW5kZWlnaWQsIG1hY2h0IGQud3Vlc3RlIGdsZWljaCB6dSBzY2htYXJybjIKCldhZXJlIGphIG5pY2h0IGRhcyBlcnN0ZW1hbCA6LSkKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFcndlaXRlcnVuZ2VuIChHcmltbWJvcm4sIDE4LiBKdW4gMTk5NiwgMTc6NDg6MDUpOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTgzNTExMTY0OQp+IyEgdGlkPTgzNTA5NTg4MAoKSHVjaCwga2VpbmUgQmFldW1lIGluIGRlciBXdWVzdGU/IFNvbGx0ZSBkYXMgVmxhbmQgZ2FyIGVpbmUgIld1ZXN0ZSBpbQpKdWdlbmRzdGFkaXVtIiBzZWluPwoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IG1hY2h0IHNpY2ggU29yZ2VuIHVtIGZhbGxlbmRlIEJhZXVtZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEVyd2VpdGVydW5nZW4gKER1cmlhbiwgMTguIEp1biAxOTk2LCAxNzo0OTowNik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM1MTEyODg1Cn4jISB0aWQ9ODM1MDk1ODgwCkhhbHQsIFNla3VuZGUuCgpEaWVzIHd1ZXJkZSBiZWRldXRlbiwgZGFzcyBkaWUgV3Vlc3RlIGVpbmUgV2VpdGVyZW50d2lja2x1bmcgZGVzIFZsYW5kZXMKd2FlcmVzLgoKSWNoIGVyaGViZSBFaW5zcHJ1Y2ghCgpEaWUgV3Vlc3RlIGlzdCBlaW5lIFd1ZXN0ZSBpc3QgZWluZSBXdWVzdGUgaXN0IGVpbmUgV3Vlc3RlIQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFcndlaXRlcnVuZ2VuIChTY2hydW1wZmksIDE5LiBKdW4gMTk5NiwgMDA6NDE6MTQpOgp+IyEgcm49RHVyaWFuIHJ0PTgzNTA5NTg4MAp+IyEgdGlkPTgzNTA5NTg4MApJY2ggd2lsbCBlaW5lIFJhdHRlISA6KQoKU2NocnVtcGZpIGlzdCBSYXR0ZW5mYW5hdGlrZXJpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFcndlaXRlcnVuZ2VuIChNb3Jnb3RoLCAxOS4gSnVuIDE5OTYsIDE1OjUzOjQwKToKfiMhIHJuPUR1cmlhbiBydD04MzUwOTU4ODAKfiMhIHRpZD04MzUwOTU4ODAKam8sIGRlciBrb21pc2NoZSBrYWVmaWcgaXN0IG5pY2h0IHp1IGVtcGZlaGxlbi4gZGVyIGhhdCBuYWVtbGljaCBuZW4gbmV0dGVuCmtsZWluZW4gYnVnLgpsaWVzIG1hbCBkZWluZSBtYWlsIGR1cmlhbiB1bmQgcmVwYXJpZXIgaWhuLiA7LSkpCk1vcmdvdGgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXJ3ZWl0ZXJ1bmdlbiAoQXNtb2RpcywgMTkuIEp1biAxOTk2LCAxOTowNDozNSk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTgzNTE5MjQyMAp+IyEgdGlkPTgzNTA5NTg4MApKbywgei5CLiBrYW5uIG1hbiBkZW4gSHVuZCBuaWNodCBkYSBlaW5zcGVycmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFcndlaXRlcnVuZ2VuIChBenp1cm8sIDIwLiBKdW4gMTk5NiwgMDA6MzA6MTcpOgp+IyEgcm49U2NocnVtcGZpIHJ0PTgzNTEzNzY3NAp+IyEgdGlkPTgzNTA5NTg4MAoKSUNIIFdJTEwgS1VFSEUhISEhISEhISEKCkF6enVybyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVyd2VpdGVydW5nZW4gKEFzbW9kaXMsIDIwLiBKdW4gMTk5NiwgMTc6NTQ6MDkpOgp+IyEgcm49QXp6dXJvIHJ0PTgzNTIyMzQxNwp+IyEgdGlkPTgzNTA5NTg4MApLdWVoZSBpbiBkZXIgV3Vlc3RlPyBBbHNvIEF6enVybywgamV0enQgYmxlaWIgbWFsIHJlYWxpc3Rpc2NoIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYWVmaWcgaGVpbGUgLi4uIG9kZXI/IChEdXJpYW4sIDIxLiBKdW4gMTk5NiwgMTY6MDY6MDApOgoKSGFsbG8genVzYW1tZW4hCgpBbHNvIGRlciBLYWVmaWcgaGF0dGUgaGllciB1bmQgZGEgbm9jaCBlaW5lIGtsZWluZSBQYW5uZS4gV2VpbCBpY2ggZXMKbWlyIHNlbGJzdCBzY2h3ZXIgZ2VtYWNodCBoYWJlLiBEYWhlciBoYWJlIGljaCBpaG4gZWluIHdlbmlnIHVtZ2VzdHJpY2t0LAp2b24gZGVtIElociBhbGxlcmRpbmdzIG5pY2h0cyBtZXJrZW4gZHVlcmZ0ZXQhIFNvbGx0ZSBlcyB0cm90emRlbSB6dQpQcm9ibGVtZW4ga29tbWVuICh3YXMgbWFjaHQgbWljaCBudXIgc28gc2ljaGVyLCBkYXNzIGRhcyBwYXNzaWVydD8pLCAKYml0dGUgZWluZSBNYWlsIGFuIG1pY2guCgpJbSBadWdlIGRpZXNlciBBZW5kZXJ1bmcgd2FyIGljaCBsZWlkZXIgZ2V6d3VuZ2VuLCBkZW4gUGFwYWdlaWVuIApiZWl6dWJyaW5nZW4sIGRhc3Mgc2llIGlocmUgZ2VtZXJrdGVuIFNhZXR6ZSBhdWNoIG5hY2ggZGVtIGVpbnNjaGxhZmVuLApuYWNoIGRlbSBTdGVja2VuIGluIGVpbmVuIEthZWZpZywgamEgc29nYXIgbmFjaCBlaW5lbSBSZWJvb3QgYmVoYWx0ZW4uCk9rYXksIGRpZXMgaXN0IGV0d2FzIHVuYW5nZW5laG0sIGFiZXIgbmljaHQgenUgYWVuZGVybiAqZ3JpbnMqCgpHcnVzcywKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2FlZmlnIGhlaWxlIC4uLiBvZGVyPyAoRHVyaWFuLCAyMS4gSnVuIDE5OTYsIDE2OjA4OjQyKToKfiMhIHJuPUR1cmlhbiBydD04MzUzNjU5NjAKfiMhIHRpZD04MzUzNjU5NjAKCkt1cnplciBOYWNodHJhZzoKCkhhdCBtYW4gZGVuIFZvZ2VsIGltIEthZWZpZyB1bmQgc2NobGFlZnQgZWluLCBpc3QgZXIgbnVuIGF1Y2ggbmFjaCBkZW0gCldpZWRlcmF1ZndhY2hlbiBub2NoIGRyaW4hCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLYWVmaWcgaGVpbGUgLi4uIG9kZXI/IChEdXJpYW4sIDIxLiBKdW4gMTk5NiwgMTY6MTc6NTkpOgp+IyEgcm49RHVyaWFuIHJ0PTgzNTM2NjEyMgp+IyEgdGlkPTgzNTM2NTk2MAoKTm9jaCBzY2huZWxsJ25lbiBOYWNodHJhZywgZGFtaXQgZGllIFplaXR1bmcgbmljaHQgbGVlciBpc3Q6CkRlciBQYXBhZ2VpIHZlcmdpc3N0IGpldHp0IGF1Y2ggbWFsIGVpbiBwYWFyIFNhZXR6ZSEgSXN0IHNjaGxpZXNzbGljaCBhdWNoCm51ciBlaW4gTWVuc2NoLgoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVyd2VpdGVydW5nZW4gKENhcmFkaHJhcywgMjEuIEp1biAxOTk2LCAyMzoyNjowNik6Cn4jISBybj1Benp1cm8gcnQ9ODM1MjIzNDE3Cn4jISB0aWQ9ODM1MDk1ODgwCkt1ZWhlPyBJbiBkZXIgV3Vlc3RlIGdpYnRzIGhvZWNoc3RlbnMgT2Noc2VuLgoKQXV0c2NoIEF1dHNjaCEgRHVyaWFuISEgTmljaHQgaGF1biEKCiAgICAgIEdvbGRkcmFjaGUgQ2FyYWRocmFzIGNvdWxkbid0IHJlc2lzdCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWZmZW4gdW5kIHNvIC4uLiAoRHVyaWFuLCAyMy4gSnVuIDE5OTYsIDIwOjIxOjA2KToKCkhhbGxvIHp1c2FtbWVuIQoKR3V0ZSAoPz8pIE5hY2hyaWNodDogRGllIEFmZmVuIGtsYXVlbiBqZXR6dCBhdWNoIHNjaHdlcmVyZSBTYWNoZW4uIAoKU2NobGVjaHRlIE5hY2hyaWNodDogQWVobSwgJ3RoaWxmZSchCgpOZXVlIEJlZmVobGU6ICd0aGlsZmUnCgpHcnVzcywKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NobWFsIEFlbmRlcnVuZ2VuIC4uLiAoRHVyaWFuLCAyNS4gSnVuIDE5OTYsIDE1OjM0OjI0KToKCkhhbGxvIExldXRlIQoKSXJnZW5kd2FubiB3ZXJmZSBpY2ggbWljaCBub2NoIGhpbnRlciBlaW5lbiBmYWhyZW5kZW4gWnVnIC4uLgoKQWxzbywgaWNoIGhhYmUgd2VpdGVyZSBrbGVpbmUgQWVuZGVydW5nZW4gaW4gZGllIFRpZXJlIGVpbmdlYmF1dC4gRXMga29lbm5lbgpqZXR6dCBhbGxlLCBhdWYgZGllIGFuZGVyZSBXZWlzZSwgdmVyc2Nod2luZGVuLiBBdXNzZXIgZGVtIFBhcGFnZWllbiwgZGVuCmtvbm50ZSBtYW4gc2Nob24gaW1tZXIgaW4gZGVuIEthZWZpZyBzdGVja2VuLiBBbHNvLCBhbGxlbiBUaWVyZW4ga2FubiBtYW4gCmpldHp0IGF1ZiBkaWUgZnVlciBzaWUgdHlwaXNjaGVuIFdlaXNlIGJlZmVobGVuLCBhYnp1aGF1bi4gRC5oLiBzaWUgZ2VoZW4Kd2VnIHVuZCBrb21tZW4gZXJzdCBuYWNoIGVpbmVtIDxob2xlIHRpZXI+LiBXZW5uIElociBqZXR6dCBuaWNodCBvaG5lIGVpbmVuCkJsaWNrIGF1ZiAndGhpbGZlJyB3aXNzdCwgd2llIElociBkYXMgRXVyZW0gVGllciBiZWZlaGx0LCBoYWJ0IElociBlcyBhdWNoCm5pY2h0IHJpY2h0aWcgZ2VybmUuCgpPZGVyIHNvLgoKLSBEdXJpYW4sIFRpZXJkb21wdGV1cgoKUC5TLjogVmllbGxlaWNodCBzdHVlcnplIGljaCBtaWNoIGF1Y2ggYXVzIGVpbmVtIEtlbGxlcmZlbnN0ZXIuIE9kZXIgdm9yCmVpbiBwYXJrZW5kZXMgQXV0by4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NobWFsIEFlbmRlcnVuZ2VuIC4uLiAoRHVyaWFuLCAyNS4gSnVuIDE5OTYsIDE1OjM4OjU1KToKfiMhIHJuPUR1cmlhbiBydD04MzU3MDk2NjQKfiMhIHRpZD04MzU3MDk2NjQKCk5vY2ggZWluczoKCkRpZSBIdW5kZSB3ZXJkZW4gamV0enQga2VpbmUgU2NoaWZmZSB1bmQgSGFldXNlciBtZWhyIGFwcG9ydGllcmVuIQoKRGFua2UgTXVwZmVsLgoKV2VyIGtvbW10IGF1Y2ggYXVzc2VyIEFzbW9kaXMgc2Nob24gYXVmIHNvbGNoZSBJZGVlbiAuLi4KCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5vY2htYWwgQWVuZGVydW5nZW4gLi4uIChSb2NodXMsIDI1LiBKdW4gMTk5NiwgMTc6MzY6NDUpOgp+IyEgcm49RHVyaWFuIHJ0PTgzNTcwOTkzNQp+IyEgdGlkPTgzNTcwOTY2NApJY2ggaG9mZmUsIGRhcyBHZWJ1ZXNjaCBkZXIgUmFldWJlciBpc3QgZWJlbmZhbGxzIHNpY2hlciB2b3IKRGVpbmVuIEh1bmRlbi4uLgooSWNoIGdsYXViZSBhdWYgRElFIElkZWUgd2FlcmUgQXNtb2RpcyBhdWNoIGdla29tbWVuLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTm9jaG1hbCBBZW5kZXJ1bmdlbiAuLi4gKEFzbW9kaXMsIDI1LiBKdW4gMTk5NiwgMTk6Mzg6NDgpOgp+IyEgcm49Um9jaHVzIHJ0PTgzNTcxNzAwNQp+IyEgdGlkPTgzNTcwOTY2NApIbW0sIGxlaWRlciB3YXJlbiBtaXIgZGllIFJhZXViZXIgbmljaHQgaW4gZGllIFF1ZXJlIGdla29tbWVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFUklOTkVSVU5HISAoRHVyaWFuLCAyNi4gSnVuIDE5OTYsIDExOjM5OjE5KToKCkhhbGxvIExldXRlIQoKRXMgd2lyZCBpbW1lciB1bmQgaW1tZXIgd2llZGVyIGdlc2FndCwgbWFuIGtvZW5udGUgZXR3YSBpbiBEdW5jdG9uIG5pY2h0Cm1pdCBkZW4gVGllcmVuIHJlaW4uIEpFREVTIFRpZXIga2FubiBtYW4gYXVmIGRpZSBlaW5lIG9kZXIgYW5kZXJlIFdlaXNlCmxvc3dlcmRlbiB1bmQgamVkZXJ6ZWl0IHdpZWRlcmhvbGVuLiBCaXR0ZSBiZW51dHp0IGRhcywgaWNoIG1vZWNodGUgbmljaHQKMjAgTWFpbHMgYmVhbnR3b3J0ZW4hCgpEYW5rZSEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpqb2ggKFFpdGVzcywgMjYuIEp1biAxOTk2LCAxMTo1MToyNyk6CldPIElTVCBERVIgREVJTkhBUkRUID8/PwoKaW0gdWVicmlnZW4gaXN0IHFpdGVzcyBtaXQgaWhybWUgc2NoaW1wYW5zZW4gdm9sIHVuZCBnYW56IHp1ZnJpZWRlbiA6KQorKwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFwYWdlaWVuIC4uLiAoRHVyaWFuLCAgNS4gSnVsIDE5OTYsIDE1OjQxOjE3KToKClRhY2ghCgpEaWUgUGFwYWdlaWVuIGhhYmVuIHNpY2h0IGxlaWNodCBnZWFlbmRlcnQuIERpZSBiZWdydWVzc2VuIGFuZGVycyB1bmQgbWFuCmthbm4gc2llIG5pY2h0IG1laHIgYWxsZSBuYXNlbGFuZyB6IHVkZW1zZWxiZW4gU3BpZWxlciBzY2hpY2tlbiEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYXBhZ2VpZW4gc2luZCBydWhpZ2VyIGdld29yZGVuIC4uLiAoRHVyaWFuLCAxMS4gSnVsIDE5OTYsIDEyOjMyOjEyKToKCkhhbGxvIExldXRlIQoKVW0gTmV3YmllcyBkZW4gRWluc3RpZWcgaW4gZGFzIFNwaWVsIHp1IGVybGVpY2h0ZXJuLCBzaW5kIGpldHp0IGFsbGUgClBhcGFnZWllbiwgdW5kIG5hY2ggdW5kIG5hY2ggYXVjaCBkaWUgYW5kZXJlbiBUaWVyZSwgaW4gYWxsZSBSYXNzZW5zdGFydC0KcmFldW1lbiBhYnNvbHV0IHN0aWxsLiBTaWUgcmVhZ2llcmVuIGF1Y2ggbmljaHQgbWVociBhdWYgQmVmZWhsZSEgRGllCmFuZGVyZW4gVGllcmUgd2VyZGVuIG5hY2ggdW5kIG5hY2ggbmFjaHppZWhlbiEKCkdydXNzLAoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZXVzZSAoRHVyaWFuLCAxNi4gSnVsIDE5OTYsIDE4OjU5OjI1KToKQWxsZSBNYXVzYmVzaXR6ZXIgLT4gdGhpbGZlCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hZXVzZSAoR3JpbW1ib3JuLCAxNi4gSnVsIDE5OTYsIDIwOjE0OjU3KToKfiMhIHJuPUR1cmlhbiBydD04Mzc1MzYzNjUKfiMhIHRpZD04Mzc1MzYzNjUKCk5hIGxvcywgIkpvZiIsIGF1ZiBkaWUgInRoaWxmZSIgd2FlcmUgaWNoIGdlc3Bhbm50LiBBYmVyIHdpcmtsaWNoLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgZGVua3QgLiBvIChIaWVyIGtvbW10IGRpZSBNYXVzISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBOZXVlcyAuLi4gKER1cmlhbiwgMjEuIEF1ZyAxOTk2LCAxNjo1Njo1MCk6CgpIYWxsbyB6dXNhbW1lbiEKCkVzIGhhdCBzaWNoIGV0d2FzIGluIGRlciBXdWVzdGUgZ2V0YW4uIEJldm9yIGljaCBkYXp1IGtvbW1lLCB3YXMgZXMKZ2VuYXUgaXN0LCBoYWx0ZSBpY2ggZWluZSBrbGVpbmUgR2VzY2hpY2h0ZSBmdWVyIG5vdHdlbmRpZzoKCldpciBzY2hyZWliZW4gZGFzIEphaHIgMTk5MyAob2RlciB3YXIncyAxOTk0PykuIEdlbWVpbnNhbSBtaXQgRHVyaWFuLApzZWluZXMgWmVpY2hlbnMgZnJpc2NoIGdlYmFja2VuZXIgUmVnaW9uc21hZ2llciBXdWVzdGUsIHZlcnN1Y2h0CkNhdHdlYXpsZSBzaWNoIGR1cmNoIGVpbmVuIHRvdGFsZW4gVW1iYXUgZGVyIGJpcyBkYXRvIGVoZXIga2xlaW5lbgpXdWVzdGUgZWluZW4gTmFtZW4genUgbWFjaGVuLiBFcyB3aXJkIGVpbiB0b2xsZXMgS29uemVwdCBlbnR3b3JmZW4gdW5kCm1pdCBIaWxmZSB2b24gSGF0ZXMgZ2VuaWFsZW0gdmlydHVhbF9jb21waWxlciB3aXJkIGVpbmUgZ3Jvc3NlIFd1ZXN0ZQphdXMgZGVtIEJvZGVuIGdlc3RhbXBmdCwgaW4gZGVyIG1hbiBzaWNoLCB3aWUgZXMgc2ljaCBnZWhvZXJ0LCBpbiBhbGxlCjggSGltbWVsc3JpY2h0dW5nZW4gYmV3ZWdlbiBrYW5uLgpEZXIgUGFydCB2b24gQ2F0d2VhemxlIHdhciBlcywgZWluZW4gU29ubmVuYnJhbmQgZnVlciBlYmVuIGRpZXNlCld1ZXN0ZSB6dSBlbnR3aWNrZWxuLiBEYXMgS29uemVwdCBzdGFuZCwgdW5kIGVzIHdhciBndXQuIFNvIHNldHp0ZQpzaWNoIENhdHdlYXpsZSBoaW4gdW5kIHByb2dyYW1taWVydGUsIGthbSBuaWNodCBzbyByZWNodCB2b3JhbiwgdW5kCnN1Y2h0ZSBSYXQgYmVpIGVpbmVtIHdlaXRlcmVuIEp1bmdtYWdpZXIsIGRlciBkYSBXYXJnb24gaGllc3MuIEVzCmRhdWVydGUgbmljaHQgbGFuZ2UsIHVuZCBkZXIgU29ubmVuYnJhbmQgd2FyIGZlcnRpZy4KRGllIFd1ZXN0ZSwgaW56d2lzY2hlbiBhbmdlc2NobG9zc2VuLCBzdGFuZCBhbHNvIGt1cnogdm9yIGRlcgpWb2xsZW5kdW5nLiBEZXIgU29ubmVuYnJhbmQgbXVzc3RlIG51ciBub2NoIGRhcyBsZXR6dGUgS29udHJvbGxtZWRpdW0sCkR1cmlhbiwgcGFzc2llcmVuLiBVbmQgZGFzIGdlbGFuZyBuaWNodC4gRHVyaWFuIGVyaG9iIEVpbnNwcnVjaCwgd2VpbAppaG0gd2VkZXIgZGllIFplaXRlbiBub2NoIGRpZSBUZXh0ZSBodW5kZXJ0cHJvemVudGlnIAp6dXNhZ3Rlbi4gQXVzc2VyZGVtIHdhciBkZXIgY2FsbC1vdXQtTWVjaGFuaXNtdXMgbmljaHQKaHVuZGVydHByb3plbnRpZyB6dWZyaWVkZW4gc3RlbGxlbmQgKHZpZWxsZWljaHQgd2FyIGRlciBIYXVwdGdydW5kCmF1Y2ggZWluZmFjaCwgZGFzcyBpbiBkZXIgV3Vlc3RlIHdpY2h0aWdlIERpbmdlIGVyc3QgbmFjaCBtZWhyZXJlbgpKYWhyZW4gRW50d2lja2x1bmdzemVpdCAoUHlyYW1pZGVuLCBIYXVzdGllcmxhZGVuLCBBbGkgQmFiYXMgVmVyc3RlY2spCmFuZ2VzY2hsb3NzZW4gd2VyZGVuIC4uLiBkb2NoIGRhcyBzaW5kIG51ciBHZXJ1ZWNodGUpLiBVbmQgZGFtaXQgaGF0dGUKZXMgc2ljaC4gVm9yZXJzdC4gQ2F0d2VhemxlIGFlbmRlcnRlIGRpZSBUZXh0ZSwgZGVyCmNhbGwtb3V0LU1lY2hhbmlzbXVzIHd1cmRlIHVlYmVyYXJiZWl0ZXQgdW5kIGRhcyB3YXIncy4gCkltIEphaHJlIDE5OTYgZGFubiB3dXJkZSBkaWUgc2VociBndXRlIElkZWUgYXVmZ2VncmlmZmVuLCBkb2NoIG1hbApkZW4gU29ubmVuYnJhbmQgYW56dXNjaGxpZXNzZW4uIFdhcmdvbiwgaW56d2lzY2hlbiBpbSBMZXZlbCBlaW4gd2VuaWcKYXVmZ2VzdGllZ2VuIChEdXJpYW4gaGF0dGUgZXIgbmljaHQgbnVyIGxldmVsbWFlc3NpZyBoaW50ZXIgc2ljaApnZWxhc3NlbikgZ2FiIGRlbSBTb25uZW5icmFuZCBkZW4gZW50c2NoZWlkZW5lbiBGZWluc2NobGlmZi4gRXIga29ubnRlCmFuZ2VzY2hsb3NzZW4gd2VyZGVuLiBadSBkaWVzZW0gWndlY2sgd3VyZGUgV2FyZ29uIChnZWdlbiBzZWluZW4KV2lsbGVuKSBhbHMgUmVnaW9uc21pdGFyYmVpdGVyIGluIGRpZSBXdWVzdGUgYXVmZ2Vub21tZW4uIERlcgpTb25uZW5icmFuZCB3YXIgYWxzbyBmZXJ0aWcsIGRpZSBUZXh0ZSBva2F5LCBkZXIgY2FsbC1vdXQtTWFjaGFuaXNtdXMKb2theSAuLi4gYWJlciBhbmdlc2NobG9zc2VuIHd1cmRlIGRlciBTb25uZW5icmFuZCB0cm90emRlbSBuaWNodC4gRXMKZ2luZyBkYXMgR2VydWVjaHQgdW0sIGRhc3MgRHVyaWFuIG5hY2ggZGVyIGxldHp0ZW4gQWVuZGVydW5nIGluIGJlc3RlcgpXdWVzdGVubWFuaWVyIG5vY2ggMiBKYWhyZSB3YXJ0ZW4gd29sbHRlLgpFcyBrYW0gZGllIFplaXQgZGVzIEJlcmxpbmVyIFNvbW1lcmNhbXBzLCBhbiBkZXIgV2FyZ29uIGRlbiBmYXVsZW4KRHVyaWFuIHp1ciBTZWl0ZSBuYWhtIHVuZCBlcyB3dXJkZSBkZXIgTW9udGFnLCAxMi4wOC4gYWxzIFRlcm1pbgpmZXN0Z2VsZWd0LiBOYXR1ZXJsaWNoIHBhc3NpZXJ0ZSB6dSBkaWVzZW0gVGVybWluIG5pY2h0cy4gCgpIZXV0ZSwgZXMgZXMgdW5mYXNzYmFyLCBpc3QgZXMgYWJlciBnZXNjaGVoZW4hCgpESUUgV1VFU1RFIEhBVCBFSU5FTiBTT05ORU5CUkFORCwgbWl0IDMgSmFocmVuIEVudHdpY2tsdW5nc3plaXQuCgpJbiBadWt1bmZ0IHNvbGx0ZSBtYW4gYWxzbzoKCi0gSW4gZGVyIFd1ZXN0ZSBuaWNodCBtZWhyIGRpZSBXZWdlIHZlcmxhc3NlbgoKLSBBdWYgamVkZW4gRmFsbCBlaW5lbiBIdXQgbWl0bmVobWVuCgotIE5pY2h0IHNpbm5sb3MgcnVtc3RlaGVuIHVuZCBzaWNoIGJyYXRlbiBsYXNzZW4KCi0gQWIgdW5kIGFuIG1hbCBlaW5lbiBTY2hsdWNrIHRyaW5rZW4KCkJlaSBadXdpZGVyaGFuZGx1bmcgaXN0IG1pdCBlaW5lbSBTb25uZW5icmFuZCwgU29ubmVuc3RpY2ggdW5kIGJlaQpwZXJtYW5lbnRlciBJZ25vcmFueiAodW5kIG51ciBkYW5uKSBtaXQgZGVtIFRvZCB6dSByZWNobmVuIQoKLSBEdXJpYW4KClAuUy46IERhbmtlIGZ1ZXIgRGVpbmUgR2VkdWxkLCBXYXJnb24hISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgTmV1ZXMgLi4uIChCZW5kZWlnaWQsIDIxLiBBdWcgMTk5NiwgMTk6NTQ6MjIpOgp+IyEgcm49RHVyaWFuIHJ0PTg0MDYzOTQxMAp+IyEgdGlkPTg0MDYzOTQxMApTbywgaGFidCBpaHIuLi4KaW4gZWluZXIgZ2V3aXNzZW4gYW5kZXJlbiwgd2VpdCBmb3J0c2Nocml0dGxpY2hlcmVuIHVuZCBlcmhlYmxpY2ggc2NobmVsbGVyZW4sCmt1cno6IHNjaG9lbmVyZW4gR2VnZW5kIGdpYnQgZXMgc2VpdCBsYWVuZ2VyZXIgWmVpdCBlaW4gc29sY2hlcwpJbnN0cnVtZW50YXJpdW0sIHdlbGNoZXMgU3BpZWxlciBob2VmbGljaCwgYWJlciBiZXN0aW1tdCwgZGFydW0gYml0dGV0LApnZXdpc3NlIFNjaHV0em1lY2hhbmlzbWVuIChLbGVpZHVuZyBpbiBkaWVzZW0gRmFsbCkgenUgZXJncmVpZmVuLCB1bSBkZW4KVW5iaWxkZW4gZGVzIFdldHRlcnMgd2lkZXJzdGVoZW4genUga29lbm5lbi4KU2VpdGRlbSB3aXJkIGJlc2FndGUgUmVnaW9uIHdlaXRnZWhlbmQgZ2VtaWVkZW4gOigKSWNoIGdyYXR1bGllcmUgZGVyIFd1ZXN0ZSB6dSBlaW5lciBzaW5udm9sbGVuIEVudHZvZWxrZXJ1bmdzbWFzc25haG1lLiBLb21tZXQKaW4gZGllIG9iZW4gZXJ3YWVobnRlIFJlZ2lvbiwgZG9ydCBnaWJ0IGVzIG51ciBpbiB3ZW5pZ2VuIEdlYmlldGVuCiJQcm9ibGVtZSIuLi4uIHVuZCBkaWUgbWVpZGVuIGRpZSBtZWlzdGVuIFNwaWVsZXIgYXVzIEZlaWdoZWl0L2JlcXVlbWxpY2hrZWl0CmVoLgoKWidwYXIgU2VydnUsCiAgICAgICAgICBCZW5kZWlnaWQsIG1pdCBHcnVlc3NlbiBhbiBlaW5lIER1ZW5lIHVuZCBkaWUgSGlsZnNzYW5ka29lcm5lcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgTmV1ZXMgLi4uIChQYXJhY2Vsc3VzLCAyMS4gQXVnIDE5OTYsIDIxOjExOjEzKToKfiMhIHJuPUJlbmRlaWdpZCBydD04NDA2NTAwNjIKfiMhIHRpZD04NDA2Mzk0MTAKQWVobSwgQmVuKiwgd2FzIHdpbGxzdCBEdSBkZW5uIGluIGRlciBvZWRlbiBXdWVzdGUgbm9jaCBlbnR2b2Vsa2Vybj8gRGEgcmVubnQKZG9jaCBlaCBrYXVtIGVpbmVyIGhpbi4gRGllIHNvbGx0ZW4gZGEgbWFsIGVpbiBwYWFyIG9yZGVudGxpY2hlIEJhZXVtZSAKYW5wZmxhbnplbi4gOykKUGFyYWNlbHN1cy4KClAuUy46IEVzIGxlYmUgZGVyIFdhbGQhIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXYXMgTmV1ZXMgLi4uIChNdXBmZWwsIDIxLiBBdWcgMTk5NiwgMjI6MDM6MTApOgp+IyEgcm49UGFyYWNlbHN1cyBydD04NDA2NTQ2NzMKfiMhIHRpZD04NDA2Mzk0MTAKCk5hIGRlciBTb25uZW5icmFuZCBpc3Qgc28gc2NoYXJmIGRhbm4gd29obCBkb2NoIG5pY2h0Li4uIHdhcyBkZXIgV3Vlc3RlIGZlaGx0CmlzdCBzb24gcmljaHRpZ2VzICdUYWwgZGVzIFRvZGVzJyB3byBkZXIgU29ubmVuc3RpY2ggaW4gdmVyc2NoYWVyZnRlciBGb3JtCmF1ZnRyaXR0IDotKQoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgTmV1ZXMgLi4uIChDYXJhZGhyYXMsIDIxLiBBdWcgMTk5NiwgMjM6MTQ6NTYpOgp+IyEgcm49RHVyaWFuIHJ0PTg0MDYzOTQxMAp+IyEgdGlkPTg0MDYzOTQxMApXYXMgaXN0IGVpbiBjYWxsX291dD8KCiAgICAgICAgZWluIEZyb3NjaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgTmV1ZXMgLi4uIChGeXQsIDIyLiBBdWcgMTk5NiwgMDA6MzM6MzMpOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTg0MDY1MDA2Mgp+IyEgdGlkPTg0MDYzOTQxMAoKTmFqYSwgQmVuLCBkYXMgUHJvYmxlbSBtZWluZXJzZWl0cyB3YXIgZGFyYW4sIGRhc3MgZWluIG5ldHRlciBaZWl0Z2Vub3NzZSwKZXMgd2FyIC0gc28gZ2xhdWJlIGljaCAtIG1laW4gRnJldW5kIEFzbW9kaXMsIGt1cnogenV2b3IgZ2VuYXUgZGVuIEhlcnJuLApkZXIgbWljaCB2b3IgRGVpbmVtIFBhc3MgaGFldHRlIHdhcm5lbiBrb2VubmVuLCB6dSBtZWluZW0gYW5kZXJlbiBGcmV1bmQKKExhcnMpIGdlc2NoaWNrdCBoYXR0ZS4uLgoKQW5kZXJlcnNlaXRzIG1vZWNodGUgaWNoIGJlbXdlcmtlbiwgZGFzcyBpY2ggbWljaCBhbHMgSnVuZ3NwaWVsZXIKbWVocmVyZSBNb25hdGUgbmljaHQgaW4gZGllIFd1ZXN0ZSBnZXRyYXV0IGhhYmUsIHdlaWwgaWNoIGRhcyBXYXJuc2NoaWxkCip6dSogZXJuc3QgZ2Vub21tZW4gaGF0dGUgdW5kIG1pY2ggaW0gTmFjaGhpbmVpbiBldHdhcyB2ZXJrb2hsdCB2b3JrYW0uCkRlciBTb25uZW5icmFuZCBkdWVyZnRlIHp1bWluZGVzdCBrdWVuZnRpZ2VuIEdlbmVyYXRpb25lbiBkaWVzZXMKR2VmdWVobCBlcnNwYXJlbi4uLgoKSWNoIGZpbmQgZGllIEFlZGVydW5nIGFsc28gbmljaHQgc29vb29vb28gbmVydmlnLCBhbHMgZGFzcyBpY2ggZGllCld1ZXN0ZSBtZWlkZW4gd3VlcmRlIGluIFp1a3VuZnQgd2llIHp1bSBCZWlzcGllbCBkYXMgdmVybG9nXkhyZW5lCkxhbmQgOikKCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBOZXVlcyAuLi4gKEZ5dCwgMjIuIEF1ZyAxOTk2LCAwMDozNDo0OSk6Cn4jISBybj1GeXQgcnQ9ODQwNjY2ODEzCn4jISB0aWQ9ODQwNjM5NDEwCgpBY2ggamE6IEljaCBiaW4gbGVpY2h0IGFuZ2VkdWVkZWx0LCBhbHNvIG5laG10IGRpZSBUeXBvcyBuaWNodCBlcm5zdC4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBOZXVlcyAuLi4gKFJhZmZpLCAyMi4gQXVnIDE5OTYsIDAwOjQ3OjI2KToKfiMhIHJuPVBhcmFjZWxzdXMgcnQ9ODQwNjU0NjczCn4jISB0aWQ9ODQwNjM5NDEwCgpCYXVtZSBpbiBkZXIgV3Vlc3RlID8KCk5lTmUgYmxvc3MgbmljaHQsIGRpZSBmYWxsZW4gZGFubiBibG9zIG5vY2ggdW0hCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgTmV1ZXMgLi4uIChWYWxhcmlhbiwgMjIuIEF1ZyAxOTk2LCAwMjowOToxNCk6Cn4jISBybj1CZW5kZWlnaWQgcnQ9ODQwNjUwMDYyCn4jISB0aWQ9ODQwNjM5NDEwCkh1aHUgQWxsZSA6KQoKQWxzbyB3YXMgQmVuZGVpZ2lkIGRhIGViZW4gYmVzY2hyZWlidCwgc3RpbW10IG5pY2h0IGdhbnouIEljaCBnbGF1YiBkYXMKUHJvYmxlbSBtaXQgTmVza2F5YSBiencgZGVyIFdlZyBkYWhpbiwgaXN0IG5pY2h0LCBkYXNzIG1hbiBlcmZyaWVlcnQsIHNvbmRlcm4KZGFzcyBkZXIgV2VnIHNlaHIgc2Nod2VyIHZlcnN0YWVuZGxpY2ggaXN0LiBJY2ggaGFiIGF1Y2ggYmVzdGltbXQgMiBTdHVuZGVuCmdlYnJhdWNodCBiaXMgaWNoIGRlbiBQYXNzIGthcnRvZ3JhcGhpZXJ0IGhhYiwgZGF6dSBoYXQgaGFsdCBuaWNodCAgamVkZXIKTHVzdC4gRGFzIGthbm4gaWNoIGFic29sdXQgdmVyc3RlaGVuLiBOZXNrYXlhIGlzdCBlY2h0IHNjaG9lbiwgZGVzd2VnZW4gaGVsZgppY2ggYXVjaCBnYW56IGdlcm4gbWl0IGRlbSBXZWcgOikKCkdydXNzIFZhbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBOZXVlcyAuLi4gKEJlbmRlaWdpZCwgMjIuIEF1ZyAxOTk2LCAxMTozNTowMSk6Cn4jISBybj1WYWxhcmlhbiBydD04NDA2NzI1NTQKfiMhIHRpZD04NDA2Mzk0MTAKRGFua2UgZnVlciBkaWUgQmx1bWVuLCBWYWwuCkFiZXIgdW0gTmFjaGZyYWdlbiBnbGVpY2ggenV2b3J6dWtvbW1lbjogTmVpbiwgZXMgd2lyZCBLRUlOIFNlaGVydG9yIGRhaGluCmdlYmVuLiBEYXMgd2FlcmUgd2llLi4uLiBuYWphLCBTYW5kIGluIGRpZSBXdWVzdGUgdHJhZ2VuIDopClVuZCBNeXNlbGYsIGF1Y2gga2VpbmUgQXV0b2xvYWQtTWF0cml4IDopCgpOb2NobWFsIEJlenVnIHp1IEZ5dDogQmVzYWd0ZXIgTlBDIGlzdCBuaWNodCBkaWUgZWluemlnZSBXYXJudW5nLiBCZWkgbWlyIGdpYnQKZXMgYmVpc3BpZWxzd2Vpc2UgYXVjaCBEZXRhaWxzLCB1bmQgZGEgc3RlaHQgZGFzIGdyb3NzIHVuZCBmZXR0IGRyaW4uCkFsbGVyZGluZ3Mgc3RhbmQgZGFzIG1pdCBkZW0gU29ubmVuc3RpY2ggYXVjaCBzY2hvbiB6dSBtZWluZW4gU3BpZWxlcnplaXRlbiBpbgpkZXIgV3Vlc3RlLCB1bmQgZGFtYWxzIGhhYiBpY2ggYXVjaCAoZmFzdCkgaW1tZXIgYXJ0aWcgZWluZW4gSGVsbSBhdWZnZWhhYnQKOykpCgpaJ3BhciBTZXZ1LCAKICAgICAgIEJlbmRlaWdpZCwgd2FybnQgdm9yIFVudGVyc3VjaGUtU2NyaXB0cyAoKmdyaW5zIEZ5dCopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBOZXVlcyAuLi4gKER1cmlhbiwgMjIuIEF1ZyAxOTk2LCAxMjozNzo1Nyk6Cn4jISBybj1CZW5kZWlnaWQgcnQ9ODQwNjUwMDYyCn4jISB0aWQ9ODQwNjM5NDEwCgpIYWkhCgpBbHNvIFNwaWVsZXIsIGRpZSBzaWNoIGR1cmNoIGV0d2FzIG1laHIgU3Bhbm51bmcgdW5kIFJlYWxpdGFldHNuYWVoZSAoPykKZGF2b24gYWJnZWhhbHRlbiBzZWhlbiwgbmljaHQgbWVociBpbiBkaWUgV3Vlc3RlIHp1IGdlaGVuLCB3b2xsZW4gd2lyIGhpZXIKYXVjaCBnYXIgbmljaHQuIEJldm9yIGlyZ2VuZHdlbGNoZSBXYXJudW5nZW4gYXVzZ2VzcHJvY2hlbiB3ZXJkZW4sIHNvbGx0ZQptYW4gc2ljaCBhbnNjaGF1ZW4sIHdpZSBnZWZhZWhybGljaCBkZXIgU29ubmVicmFuZCB3aXJrbGljaCBpc3QuCkF1Y2ggd2VubiBlcyBhdWYgZGVyIEhhbmQgbGllZ3QsIGFiZXIgd2lyIHdvbGxlbiBkaWUgU3BpZWxlciBuaWNodCBtb3JkZW4uCldpciB3b2xsZW4gc2llIGRhZnVlciBiZXN0cmFmZW4sIHVuZ2VzY2h1ZXR6dCBpbiBkZXIgU29ubmUgenUgbGllZ2VuIHVtCmJyYXVuIHp1IHdlcmRlbi4gRGllcyBpc3QgZGVmaW5pdGl2IGdlZmFlaHJsaWNoLiBFaW4gRHVyY2hsYXVmZW4gZGVyCld1ZXN0ZSB1ZWJlciBXZWdlLCBpbSBMQUcsIG1pdCBNdWV0emUsIGlzdCB1bmdlZmFlaHIgaXN0IHdlbmlnZXIgZ2VmYWVocmxpY2gKYWxzIGVpbiBCZXN1Y2ggaW4gZWluZXIgS25laXBlLgoKVW5kIG5vY2ggZWluZSBrbGVpbmUgU2FjaGU6IGplZGVyLCBkZXIgbWVpbnQsIGRpZSBXdWVzdGUgc2VpIG5pY2h0IGF0dHJha3RpdgpnZW51Zywgc2VpIGhpZXJtaXQgYXVmZ2Vmb3JkZXJ0IGRpZXMgenUgYWVuZGVybi4gV2lyIHNpbmQgc2VociBmcm9oLCB1ZWJlcgpMZXV0ZSwgZGllIG1pdCBmcmlzY2hlbiBJZGVlbiB6dSB1bnMga29tbWVuLiBVbmQgd2lyIHNpbmQgbm9jaCB2aWVsIGZyb2hlcgp1ZWJlciBMZXV0ZSwgZGllIElkZWVuIGF1Y2ggdGF0c2FlY2hsaWNoIG1hbCB1bXNldHplbi4gVm9uIGRpZXNlbiBoYWJlbiAKd2lyIG5hZW1saWNoIGVpbmVuLCBkZXIga2VpbiBSTSBpc3QgLi4uLgoKLSBEdXJpYW4KClAuUy46IERpZXMgd2FyIGVpbmUgdmVyc3RlY2t0ZSBBdWZmb3JkZXJ1bmcsIGVpbiBXaW5rIG1pdCBkZW0gWmF1bnBmYWhsLAphbiBhbGxlIEp1bmdtYWdpZXIsIGRpZSBmcmlzY2hlIElkZWVuIGhhYmVuISEhIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV2FzIE5ldWVzIC4uLiAoR3JpbW1ib3JuLCAyMi4gQXVnIDE5OTYsIDEyOjQ0OjEzKToKfiMhIHJuPVZhbGFyaWFuIHJ0PTg0MDY3MjU1NAp+IyEgdGlkPTg0MDYzOTQxMAoKSWNoIG1vZWNodGUgRElyIGhpZXJtaXQgaW0gTmFtZW4gdm9uIEJlbmRlaWdpZCBkYW5rZW4sIFZhbGFyaWFuLiBXZXIgd2Vpc3MsCndlbm4gRHUgbmljaHQgc28gbmV0dCBnZXNjaHJpZWJlbiBoYWV0dGVzdCB3YWVyZSBCZW5kZWlnaWRzICJmaXNoaW5nIGZvcgpjb21wbGltZW50cyIgYW4gRW5kZSBub2NoIHZvZWxsaWcgZXJmb2xnbG9zIGdlYmxpZWJlbi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LiBTY2hhcmZhZXVnaWcuIFNjaGFyZnp1ZW5naWcuIEduYWRlbmxvcy4gR2VtZWluLiBEb29mLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV2FzIE5ldWVzIC4uLiAoTXVwZmVsLCAyMi4gQXVnIDE5OTYsIDEyOjU5OjM4KToKfiMhIHJuPUR1cmlhbiBydD04NDA3MTAyNzcKfiMhIHRpZD04NDA2Mzk0MTAKCj4gVW5kIHdpciBzaW5kIG5vY2ggdmllbCBmcm9oZXIgdWViZXIgTGV1dGUsIGRpZSBJZGVlbiBhdWNoIHRhdHNhZWNobGljaAo+IG1hbCB1bXNldHplbi4gVm9uIGRpZXNlbiBoYWJlbiB3aXIgbmFlbWxpY2ggZWluZW4sIGRlciBrZWluIFJNIGlzdCAuLi4uCgpIbS4uLiBTdXNoaT8gTmFpcm9sZj8gTGFyaXNzYT8gb2RlciBnYXIgS2VybWV0PyA6LSkKQWxzbyBmdWVyIG1pY2ggc2llaHQgZGllIFd1ZXN0ZSByZWljaGxpY2ggdG90IGF1cy4uLiB0cm90eiA0IFJNcwoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdhcyBOZXVlcyAuLi4gKER1cmlhbiwgMjIuIEF1ZyAxOTk2LCAxMzowMjoxNCk6Cn4jISBybj1NdXBmZWwgcnQ9ODQwNzExNTc4Cn4jISB0aWQ9ODQwNjM5NDEwCkhha2tpa2t0IHVuZCAzIFJNJ3MuCgpVbmQgbmF0dWVybGljaCBpc3QgZGllIFd1ZXN0ZSB0b3QsIGRhcyBtdXNzIHNvIHNlaW4hIFdlciB3aWxsIHNjaG9uIEJhZXVtZQpvZGVyIHNvICp3dWVyZyouCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogV2FzIE5ldWVzIC4uLiAoUGFyYWNlbHN1cywgMjIuIEF1ZyAxOTk2LCAxMzowNDoyNCk6Cn4jISBybj1EdXJpYW4gcnQ9ODQwNzExNzM0Cn4jISB0aWQ9ODQwNjM5NDEwCkFjaCwgd2FzIHdpc3N0IGlociBXdWVzdGVuLUxldXRlIGRlbm4gc2Nob24gdWViZXIgZGllIHd1bmRlcmJhcmUgUHJhY2h0CnZvbiBCYWV1bWVuIHVuZCBXYWVsZGVybiEKClBhcmFjZWxzdXMgLiBvIE8gKFd1ZXN0ZSwgKkJVQUVIISogOykKCi0+c2NobWFycm4oKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogV2FzIE5ldWVzIC4uLiAoTXVwZmVsLCAyMi4gQXVnIDE5OTYsIDEzOjA1OjM0KToKfiMhIHJuPUR1cmlhbiBydD04NDA3MTE3MzQKfiMhIHRpZD04NDA2Mzk0MTAKCkJhbnphaSBpc3QgdHJvdHogTGV2ZWwgMjUgYXVjaCBSTSBXdWVzdGUuLi4gbWFjaHQgaW5zZ2VzYW10IDQuCgpOZWluIGtlaW5lIEJhZXVtZS4uLiBhYmVyIGlyZ2VuZHdhbm4gaGVpc3N0cyAnV3Vlc3RlPyBJc3QgZGFzIG5pY2h0IGRlcgpTdHJlaWZlbiBMYW5kIHJ1bmQgdW0gRGFuY2VycyBQeXJhbWlkZW4/JyB1bmQgZGFzIHdvbGx0IGlociBkb2NoIHNpY2hlciBuaWNodApvZGVyPyA6LSkKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXYXMgTmV1ZXMgLi4uIChTY2hydW1wZmksIDIyLiBBdWcgMTk5NiwgMTc6NTg6MDIpOgp+IyEgcm49RHVyaWFuIHJ0PTg0MDcxMDI3Nwp+IyEgdGlkPTg0MDYzOTQxMApXaWUgaWhyIHdvbGx0IG5pY2h0IG1vcmRlbj8gV2llIGxhbmd3ZWlsaWcuIE5lLCBhbHNvIHNvIGhhZXR0IGljaCBzY2hvbiBlaW4KcGFhciBuZXR0ZSBJZGVlbiBnZWhhYnQgZnVlciBkaWUgV3Vlc3RlIGFiZXIgd2VubiBpaHIgbmljaHQgbW9yZGVuIHdvbGx0Li4uClNjaHJ1bXBmaSBncmluc3QgZ2VoYWVzc2lnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXYXMgTmV1ZXMgLi4uIChSYWZmaSwgMjIuIEF1ZyAxOTk2LCAxODoxMzo0Nyk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODQwNzI5NDgyCn4jISB0aWQ9ODQwNjM5NDEwCgpBdSBqYSBzY2hydW1wZmkgLSBtaXIgYXVjaC4gei5CLjoKCkJhdW1lIGluIGRlciBXdWVzdGUhCgpVbmQgd2VubiBlaW4gRXJzY2hvZXBmdGVyIFdhbmRlcmVyIHNpY2ggdW50ZXIgZWluZW0gc29sY2hlbiB6dSBsYW5nZSB2b3IgZGVyClNvbm5lIHZlcnN0ZWNrdCwga2FubiBlcyBwYXNzaWVyZW4gZGFzcyBlciAoZGVyIEJhdW0pIHVtZmFlbGx0ICpncmlucyohCgpncnVzcwpILgooaGF0dCBpY2ggZWlnZW50bGljaCBzYWdlbiBtdWVzc2VuIERhcyBkZXIgYmF1bSBpbW1lciBpbiBSaWNodHVuZwogU3BpZWxlciBmYWVsbHQsIHNvIGRhcyBkZXIgRGFzIGdlcmFldXNjaCBhdWNoIEhhdXRuYWgKIGhvZXJlbiBrYW5uID8pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXYXMgTmV1ZXMgLi4uIChGeXQsIDIyLiBBdWcgMTk5NiwgMTg6MjU6MDEpOgp+IyEgcm49TXVwZmVsIHJ0PTg0MDcxMTU3OAp+IyEgdGlkPTg0MDYzOTQxMAoKSG0sIGRhcyB3YXIgZG9jaCBob2ZmZW50bGljaCBrZWluZSBBdWZmb3JkZXJ1bmcgYW4gZGllIFNlaGVyLApNYWdpZXIgenUgd2VyZGVuIHVuZCBkZW4gU2FuZGthcnJlbiBhdXMgZGVtIFNhbmQgenUgemllaGVuLCBvZGVyPwoKRGllIFplaXRlbiwgZGllIHplaXRlbi4uICpzZXVmeioKCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFdhcyBOZXVlcyAuLi4gKE11cGZlbCwgMjMuIEF1ZyAxOTk2LCAwNzoyOTozMyk6Cn4jISBybj1GeXQgcnQ9ODQwNzMxMTAxCn4jISB0aWQ9ODQwNjM5NDEwCgpBYmVyIG5laW4gRnl0Li4uIGljaCB3aWxsIGRvY2ggaGllciBrZWluZW4gaW4gZGllIE1hZ2llcnJpZWdlIHRyZWliZW4uLi4gOi0pCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFldXNlIC4uLiAoRHVyaWFuLCAxOC4gU2VwIDE5OTYsIDE3OjE2OjM0KToKCkhhbGxvIHp1c2FtbWVuIQoKU28sIElociBrb2VubnQgbWl0IGRlbiBNYWV1c2VuIGpldHp0IG5pY2h0IG1laHIgcnVtdHJpY2tzZW4uIERpZSBtZXJrZW4Kc2ljaCBhdWNoIG5hY2ggZGVtIEFiaGF1ZW4sIHdlbiBzaWUgbGV0enRlbnMgZXJzY2hyZWNrdCBoYWJlbi4KCldhciBlaW4gZ3V0ZXIgVGlwLCBOaWNodHMhIDotKQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWV1c2UgLi4uIChOaWNodHMsIDE4LiBTZXAgMTk5NiwgMTc6MTk6MzApOgp+IyEgcm49RHVyaWFuIHJ0PTg0MzA1OTc5NAp+IyEgdGlkPTg0MzA1OTc5NAoKRGFyZiBpY2ggbWlyIGFscyBEYW5rZXNjaG9lbiBldHdhcyB3dWVuc2NoZW4/IDopCgpXdWVuc2NodCBzaWNoLCBkYXNzIGF1Y2ggR3Jvc3NidWNoc3RhYmVuIGltIFRpZXJuYW1lbiBlcmxhdWJ0IHNpbmQsCiIiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNYWV1c2UgLi4uIChTY2hydW1wZmksIDE4LiBTZXAgMTk5NiwgMTc6MjY6MzMpOgp+IyEgcm49TmljaHRzIHJ0PTg0MzA1OTk3MAp+IyEgdGlkPTg0MzA1OTc5NApJY2ggZmluZCBkYXMgamEgdm9lbGxpZyBhbGJlcm4hIFdpZXNvIHNvbGx0ZSBpY2ggbWljaCBlcnNjaHJlY2tlbiB3ZW5uIG1pciBuZQpNYXVzIHVlYmVyIGRlbiBXZWcgbGF1ZWZ0PyBCaW4gaWNoIGh5c3RlcmlzY2g/IE5laW4sIGJpbiBpY2ggbmljaHQhIDopClNjaHJ1bXBmaSBoYXQgUkwgYXVjaCBuZSBrbGVpbmUgTWF1cyB6dSBIYXVzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWFldXNlIC4uLiAoUGFyYWNlbHN1cywgMTguIFNlcCAxOTk2LCAyMToyMDowNyk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODQzMDYwMzkzCn4jISB0aWQ9ODQzMDU5Nzk0CkRhIG11c3MgaWNoIGphIG1hbCBTY2hydW1wZmkgenVzdGltbWVuLiBNYWV1c2UgdW5kIGVyc2NocmVja2VuLCB0c3MhCk1hZXVzZSBzaW5kIGRhenUgZGEsIGdlZmFuZ2VuIHVuZCBnZWdlc3NlbiB6dSB3ZXJkZW4uICpNSUFVKgoKUGFyYWNlbHN1cywgRmVsaW5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVjaCBrZWluIEJhdW0gOi0pIChBY3JpbW9uLCAyNC4gU2VwIDE5OTYsIDIyOjMyOjA0KToKSW4gZGVyIFd1ZXN0ZSB3dXJkZSB3aWVkZXIgZWluZSBEdWVuZSB2ZXJ3ZWh0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IGFydGlrZWwgU3R1ZmVuIHVuZCBFcmZhaHJ1bmcgKEhhcmRpbCwgMjUuIFNlcCAxOTk2LCAxMTozMzowOCk6Cn4jISBybj1DYXVubyBydD04NDE2NTcxODIKfiMhIHRpZD04NDA0ODc4NzkKCkFsc28gc292aWVsIGljaCB3ZWlzcywgd2VyZGVuIGRlbW5hZWNoc3QgaW4gZGVyIFd1ZXN0ZSBkaWUgZXJzdGVuIEJhZXVtZQphbmdlcGZsYW56dC4gWndhciBudXIgUGFsbWVuLCBhYmVyIGltbWVyaGluIGVpbiBlcnN0ZXIgU2Nocml0dCB6dXIgR2V3b2VobnVuZywKbmljaHQgd2FociwgRHVyaWFuPyA6KQoKLUhhcmRpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBhcnRpa2VsIFN0dWZlbiB1bmQgRXJmYWhydW5nIChEdXJpYW4sIDI2LiBTZXAgMTk5NiwgMTM6MTg6NDgpOgp+IyEgcm49SGFyZGlsIHJ0PTg0MzY0Mzk4OAp+IyEgdGlkPTg0MDQ4Nzg3OQoKTklFTUFMUyEhIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlaGVyd2V0dGJld2VyYiAoRHVyaWFuLCAgMS4gT2t0IDE5OTYsIDEwOjU2OjIzKToKCkhhbGxvIHp1c2FtbWVuIQoKR2VzdGVybiAob2RlciBpcmdlbmR3YW5uKSB3dXJkZSBhdWZncnVuZCBlaW5lcyBCdWdzLCB6dW1pbmRlc3QgYmVzdGVodApkaWVzZXIgVmVyZGFjaHQsIGVpbiBuZXVlciBSZWtvcmQgYmVpbSBTZWhlcndldHRiZXdlcmIgaW4gZGVyIEFyZW5hIGF1Zi0KZ2VzdGVsbHQuIERhIGljaCBkaWVzIGF1cyBGYWlybmVzc2dydWVuZGVuIG5pY2h0IGR1bGRlbiBrYW5uLCBoYWJlIGljaCAKZGVuIEJldHJvZmZlbmVuIGF1cyBkZXIgTElzdGUgZW50ZmVybnQgdW5kIGVpbmVuIHp3ZWl0ZW4gYXVmIHNlaW5lbiAKYWx0ZW4gUExhdHogenVydWVja2dlc3R1ZnQuIEVpbmUgQXVzbnV0enVuZyB2b24gQlVncyB3ZXJkZSBpY2ggYXVjaAp3ZWl0ZXJoaW4gc28gJ2FobmRlbicuCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnVnIGZpeGluZyAuLi4gKER1cmlhbiwgIDEuIE9rdCAxOTk2LCAxMTo1NjoxOCk6CgpIYWxsbyBMZXV0ZSEKClVtIGluIFp1a3VuZnQgZWluZSBtb2VnbGljaGUgQlVHcXVlbGxlIGF1c3p1c2NobGllc3NlbiwgaGFiZSBpY2ggaW4gCmRlciBBcmVuYSBldHdhcyBnZWFlbmRlcnQuIEVnYWwgb2IgYmVpIER1ZWxsZW4gb2RlciBiZWltIFNlaGVyd2V0dGJld2VyYgpvZGVyIGJlaSBkZXIgUXVlc3QsIGVzIGdpbHQgZm9sZ2VuZGVzOiB3aXJkIGVpbiBLYWVtcGZlciBuZXR6dG90LAp3aXJkIGRlciBLYW1wZiBTT0ZPUlQgYWJnZWJyb2NoZW4hISBMZWlkZXIgd2FyIGRpZXNlIE1hc3NuYWhtZSBub3R3ZW5kaWcuCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNlaGVyd2V0dGJld2VyYiAoUGF0cnluLCAgMS4gT2t0IDE5OTYsIDEyOjEwOjA5KToKfiMhIHJuPUR1cmlhbiBydD04NDQxNjAxODMKfiMhIHRpZD04NDQxNjAxODMKb2suLi5pY2ggZ2VicyBqYSB6dSB1bmQgZmluZHMgYXVjaCBvaywgd2FyIG1laHIgbmVuIHNwYXNzIGZ1ZXIgbWljaCwgYWJlcgpnYW56IGVocmxpY2ggbWFsOiBpY2ggaGFiIGhhbHQgbWFsIG5lbiBhbmRlcmVuIGJ1ZyBnZW51dHp0IGFscyBwbGF0eiAyLzMuLgpkYSBtdWVzc3Rlc3RlIHdvaGwgYWxsZXMgdWViZXIgZ2xhZGlhdG9yIDIwIG9kZXIgc28gbG9lc2NoZW4KCi0tLS0tLQpwYXRyeW4gbGFjaHQgaW1tZXIgbm9jaCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BpZWxwbGF0eiAoQ2F0d2VhemxlLCAgMi4gT2t0IDE5OTYsIDE5OjQ5OjExKToKSGFsbGloYWxsb2VjaGVuIQoKVGphLCBpY2ggdmVyc3VjaCBtYWwgb2xsZSBLYW1lbGxlbiBhdWZ6dXdhZXJtZW4uCldpZSBlaW5pZ2Ugdm9uIEV1Y2ggdmllbGxlaWNodCB3aXNzZW4gZ2lidHMgZWluZSBrbGVpbmUgU2VoZXJpbnNlbCBhbQpTdHJhbmQgZGVyIFd1ZXN0ZS4gRGllIG1laXN0ZW4gdm9uIEV1Y2gga2VubmVuIHNpZSB3YWhyc2NoZWlubGljaCBhbHMgCnN0dW1wZmVzLCBsYW5nd2llbGlnZXMsIG5pY2h0IGJlc2NocmllYmVuZXMgTGFieXJpbnRoLCBpbiBkZW0gYWxsZXMgCmhlbGwgbGV1Y2h0ZXQuIAoKVGphLCBhdWYgZGllc2VyIEluc2VsIGhhdCBtYW4gYWxzIFNlaGVyIGRpZSBNb2VnbGljaGtlaXQgZWlnZW5lIFJhZXVtZSAKenUgc2NocmVpYmVuIHVuZCBEZXRhaWxzIGVpbnp1YmluZGVuLiBEdW1tZXJ3ZWlzZSBnaWJ0cyBhYmVyIHNjaG9uIGRpZSAKSGFldXNlciwgZGllIGRhcyB2aWVsIGJlc3NlciBrb2VubmVuLiBBdXMgZGllc2VtIEdydW5kIGxldWNodGV0IGRhIGF1Y2ggCmFsbGVzIG51ciBzY2hvZW4gdHJpc3QuIE5hamEsIHNvdmllbCB6dXIgR2VzY2hpY2h0ZS4KClVtIGRpZSBTYWNoZSB2aWVsbGVpY2h0IF9kb2NoXyBub2NoIGlucyBSb2xsZW4genUgYnJpbmdlbiwgbXVzcyBtYW4gamV0enQKbmljaHQgZXJzdCBTZWhlciBzZWluLCBzb25kZXJuIGthbm4gYmVyZWl0cyBhYiBMZXZlbCAyMCAoZGFzIGZ1bnp0IGphIGpldHp0KQpkb3J0IHNlaW5lIGVpZ2VuZW4gUmFldW1lIGJlc2NocmVpYmVuLgoKRGVyIERlYWwgaXN0IGVpbmZhY2guIEFtIEVpbmdhbmcgenVtICdTcGllbHBsYXR6JyBrYW5uIG1hbiBnZWdlbiBlaW5lbiByZWxhdGl2CmdlcmluZ2VuIE9idWx1cyBEaW5nZSBrYXVmZW4sIG1pdCBkZW5lbiBtYW4gQXVzZ2FlbmdlIGVyc2NoYWZmZW4ga2FubiwgRGV0YWlscwpvZGVyIGdhbnplIFJhZXVtZSBiZXNjaHJlaWJlbiBrYW5uLCBvZGVyIFJhZXVtZSBoZWxsIG9kZXIgZHVua2VsIG1hY2hlbiBrYW5uLgpNaXQgZGllc2VuIERpbmdlcm4gZ2VodHMgZGFubiBkcnVmZiB1ZmZlIEluc2VsLCBSYXVtIGdlc3VjaHQgdW5kCmxvc2Jlc2NocmllYmVuLgoKSWhyIGtvZW5udCBkYSBtYWNoZW4sIHdhcyBpbW1lciBpaHIgd29sbHQuIEVzIHdhZXJlIG5hdHVlcmxpY2ggYW0gc2Nob2Vuc3RlbiwKd2VubiBBYnNwcmFjaGVuIGdlbWFjaHQgd2VyZGVuIHVuZCBldnRsLiBzb2dhciB3YXMgc2lubnZvbGxlcyBkYWJlaSByYXVza29tbXQsCmFiZXIgZGFzIGJsZWlidCB2b2xsa29tbWVuIEV1Y2ggU3BpZWxlcm4gdWViZXJsYXNzZW4uIEljaCB6dW1pbmRlc3QgaG9mZmUgYXVmCmVpbmUgendlaXRlIENoYW5jZSBmdWVyIGRlbiBTcGllbHBsYXR6IHVuZCBsYXNzZSBtaWNoIHVlYmVycmFzY2hlbiA7KQoKWW91cnMgdHJ1bHksCiAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3BpZWxwbGF0eiAoUmFmZmksICAyLiBPa3QgMTk5NiwgMjE6MDM6NDApOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg0NDI3ODU1MQp+IyEgdGlkPTg0NDI3ODU1MQoKSG1tIG5hIGRhbm4gaXN0IGVzIGphIGRvY2ggd2llZGVyIHVuaW50ZXJlc3NhbnQgLSBFcnN0IGFiIFN0dWZlIDIwIC0gUGZmZnQhCgpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTcGllbHBsYXR6IChBY3JpbW9uLCAgMi4gT2t0IDE5OTYsIDIxOjEwOjA4KToKfiMhIHJuPVJhZmZpIHJ0PTg0NDI4MzAyMAp+IyEgdGlkPTg0NDI3ODU1MQpTdGltbXQsIGljaCBmaW5kZSBlcyBzb2xsdGUgbWluZGVzdGVucyBhYiBTdHVmZSAxNSB6dWdhZW5nbGljaCBzZWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTcGllbHBsYXR6IChSYWZmaSwgIDIuIE9rdCAxOTk2LCAyMTo1MToyNSk6Cn4jISBybj1BY3JpbW9uIHJ0PTg0NDI4MzQwOAp+IyEgdGlkPTg0NDI3ODU1MQoKSWhyIHNlaXQgYWxsZSBzbyBnZW1laW4hCgpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU3BpZWxwbGF0eiAoQWNyaW1vbiwgIDIuIE9rdCAxOTk2LCAyMjowMToyMCk6Cn4jISBybj1BY3JpbW9uIHJ0PTg0NDI4MzQwOAp+IyEgdGlkPTg0NDI3ODU1MQpBZWggaWNoIHdvbGx0ZSBzYWdlbjoKRGVyIFNwaWVscGxhdHogc29sbHRlIHNwYWV0ZXN0ZW5zIGFiIFN0dWZlIDE1IHp1Z2FlbmdsaWNoIHNlaW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTcGllbHBsYXR6IChBenp1cm8sICA0LiBPa3QgMTk5NiwgMTI6MTQ6MDgpOgp+IyEgcm49QWNyaW1vbiBydD04NDQyODY0ODAKfiMhIHRpZD04NDQyNzg1NTEKV2VubiBqZW1hbmQgdW5iZWRpbmd0IG5vY2ggTW9uc3RlciBvZGVyIEF1c3J1ZXN0dW5nc2dlZ2Vuc3RhZW5kZSBpbiBlaW5lbgpndXRiZXNjaHJpZWJlbmVuLCBzdGltbXVuZ3N2b2xsZW4uLi4uLi5TcGllbHBsYXR6cmF1bSBlaW5nYWJ1dCBoYWJlbiB3aWxsLApkYW1pdCB1ZWJlcmhhdXB0IExldXRlIGRhaGluIGtvbW1lbiwgZGVyIGthbm4gc2ljaCwgbmFjaGRlbSBkZXIgUmF1bSBmZXJ0aWcKaXN0IG1pdCBJZGVlbiBhbiBtaWNoLCBiencgYW4KamVkZW4gYW5kZXJlbiB3aWxsaWdlbiBNYWdpZXIgd2VuZGVuLiAoTmF0dWVybGljaCBrZWluZSBXdWVuc2NoZSB3aWU6CkljaCBoYWJlIGRhIGVpbmVuIHRvbGxlbiBSYXVtLCBpbiBkZW4gZWluIE1vbnN0ZXIgc29sbCwgZGFzIGdhbnogc2Nod2FjaCBpc3QsCmFiZXIgZHVyY2ggZWluZW4gRmVobGVyIGltIFJhdW0gWmVpdCBHZWZ1ZWdlIGVpbmUgU3VwZXJ0b2xsZSB1bmQgdW5zY2hsYWdiYXJlCktldWxlIGdlZnVuZGVuIGhhdCkKSWNoIGRlbmtlIHNvIGtvZW5udGUgZGVyIFNwaWVscGxhdHogYXVjaCBpbnRlcmVzc2FudGVyIHdlcmRlbi4uLgpBenp1cm8KUC5TLjogSWNoIHNldHplIGhpZXJiZWkgZGllIEVpbndpbGxpZ3VuZyBkZXMgUHJvZ3JhbWllcmVycyBkZXMgU3BpZWxwbGF0emVzCnZvcnJhdXMuIEVyIGhhdCBkYXMgTGV0enRlIFdvcnQgKG9kZXIgdmllbGxlaWNodCBkaWUgRXJ6aWVzPz8gTm9lIDspICkKUC5QLlMuOiBOYXR1ZXJsaWNoIHdlcmRlbiBkaWUgTW9uc3RlciB1bmQgQXVzcnVlc3R1bmdzZ2VnZW5zdGFlbmRlIG5pY2h0IG51cgplaW5lbiBnZXJpbmdlbiBPYm9sdXMga29zdGVuIHNvbmRlcm4gc2Nod2VpbmV0ZXVlciB3ZXJkZW4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFNwaWVscGxhdHogKENhdHdlYXpsZSwgIDQuIE9rdCAxOTk2LCAxNjo0MTozNik6Cn4jISBybj1BY3JpbW9uIHJ0PTg0NDI4NjQ4MAp+IyEgdGlkPTg0NDI3ODU1MQpXYXJ1bT8KWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3BpZWxwbGF0eiAoTXVwZmVsLCAgNC4gT2t0IDE5OTYsIDE5OjA2OjQyKToKfiMhIHJuPUNhdHdlYXpsZSBydD04NDQyNzg1NTEKfiMhIHRpZD04NDQyNzg1NTEKCkNhdCwgZGFzIHdpcmQgZGllIExldXRlIG5pY2h0IGxvY2tlbiBrb2VubmVuLgpWb3JzY2hsYWc6IG1hY2ggYXVzIGRlciBJbnNlbCBlaW5lIFBLLUFyZWEsIHZpZWxsZWljaHQga2FubiBkYXMgZGllIExldXRlCmFubG9ja2VuLi4uCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTcGllbHBsYXR6IChGeXQsICA0LiBPa3QgMTk5NiwgMTk6MDc6NTQpOgp+IyEgcm49TXVwZmVsIHJ0PTg0NDQ0ODgwMgp+IyEgdGlkPTg0NDI3ODU1MQoKTXVwZmVsIGhhdCByZWNodC4KCkZ5dC4KClBTOiBVbmQgZGVuIExpZWJlc3RyYW5rIHdpZWRlciA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFNwaWVscGxhdHogKEFjcmltb24sICA0LiBPa3QgMTk5NiwgMTk6Mzk6NDcpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg0NDQ0MDA5Ngp+IyEgdGlkPTg0NDI3ODU1MQpXZWlsIGVzIGRvY2ggbmljaHQgYWxsenUgdmllbGUgTmljaHQtU2VoZXIgdWViZXIgTGV2ZWwgMTkgZ2lidC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFNwaWVscGxhdHogKFNhZW5nZXIsICA3LiBPa3QgMTk5NiwgMDA6NTY6NDcpOgp+IyEgcm49QWNyaW1vbiBydD04NDQ0NTA3ODcKfiMhIHRpZD04NDQyNzg1NTEKWnVtIFRoZW1hIFNwaWVscGxhdHo6CkRpZSBJZGVlIGRvcnQgYXVjaCBHZWdlbnN0YWVuZGUsIE1vbnN0ZXIgZWluenViYXVlbiBmaW5kZSBpY2ggc29nYXIgZnVlcgpzZWhyIHNpbm52b2xsLiBXYXMgbWFuIGRhcmF1cyBtYWNoZW4ga2Fubj8gLT4gbnVuOgpNYW4ga29lbm50ZSBkaWUgZ2FuemUgR2VnZW5kIGF1Y2ggYWxzIFRlc3RnZWJpZXQgc2VoZW4sIGluIGRlbSBzaWNoIFNlaGVyCm1pdCBuZXVlbiBXYWZmZW4vUnVlc3R1bmdlbi9HZWdlbnN0YWVuZGVuIGVudHdlZGVyIGJla2FlbXBmZW4ga29lbm5lbiBvZGVyLAphdWNoIHdlaXRlcnJlaWNoZW5kZSBPYmpla3RlIHRlc3RlbiBrb2VubnRlbi4gRGllcyB3YWVyZSB2aWVsbGVpY2h0IG1hbCBlaW4KV2VnIGVpbmUgR2VnZW5kIHp1IGhhYmVuLCB3byBtYW4gYXVjaCBOZXVoZWl0ZW4gdGVzdGVuIGxhc3NlbiBrYW5uLCBiZXZvcgpzaWUgaW4gZGFzIGdlc2FtdGUgU3BpZWxnZXNjaGVoZW4gZWluZ2VidW5kZW4gd2VyZGVuLgpXZWl0ZXJzIHNpZWh0IGhpZXIgZWluIFNlaGVyIHdpZSBhdWZ3ZW5kaWcgdW5kIGtvbXBsaXppZXJ0IGVzIHNlaW4ga2FubgplaW5lIGluIHNpY2ggc2NobHVlc3NpZ2UgUmF1bWdydXBwZSB6dSBlcnN0ZWxsZW4sIHVuZCB3ZWxjaGUgUHJvYmxlbWUKYXVmdHJldGVuIGtvZW5uZW4gdW0gc2llIGluIHNpY2ggc3RpbW1pZyBhdWZ6dWJhdWVuLiBXYWVyZSBhbHNvIGF1Y2ggZWluCldlZyBkYXMgVmVyc3RhZW5kbmlzIHp3aXNjaGVuIFNwaWVsZXIvTWFnaWVyIHp1IHZlcmJlc3Nlcm4uCgpOdXIgbWFsIHNvIGFscyBJZGVlbiB3YXMgbWFuIGRhcmF1cyBtYWNoZW4ga29lbm50ZS4KClNhZW5nZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFNwaWVscGxhdHogKFdhcmdvbiwgIDcuIE9rdCAxOTk2LCAxMDoyODo1NSk6Cn4jISBybj1BY3JpbW9uIHJ0PTg0NDQ1MDc4Nwp+IyEgdGlkPTg0NDI3ODU1MQpIbS4uLgpMYXV0IFNwaWVsZXItVG9wbGlzdGUgbWluZGVzdGVucyA1OCAod2VubiBkYXZvbiBhdWNoIG5pY2h0IGFsbGUgZXJob2VodApoYWJlbiksIHVuZCBhdWYgZGVyIFp3ZWl0aWxpc3RlIHN0ZWhlbiBhdWNoIG5vY2ggd2VsY2hlLgpXbyBsaWVndCBkYXMgUHJvYmxlbT8gOikKICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFNwaWVscGxhdHogKENhdHdlYXpsZSwgIDcuIE9rdCAxOTk2LCAxMjo0NjoyMCk6Cn4jISBybj1XYXJnb24gcnQ9ODQ0Njc2OTM1Cn4jISB0aWQ9ODQ0Mjc4NTUxCk9rb2ssIGRhIGljaCBtaXQgbWlyIHJlZGVuIGxhc3NlbiwgaGFiIGljaCBMZXZlbCAxOCB6dWdlbGFzc2VuLiAxNSBpc3QgZWluLQpmYWNoIHZpZWwgenUga2xlaW4sIGRhcyBrYW5uIGphIGplZGUgSGFuc3d1cnN0LiBBY2hqYSB1bmQgaWNoIGhhYiBub2NoIG5lbiAKa2xlaW5lbiBCdWcgd2VnZ2VtYWNodCwgbWFuIGtvbW10IGpldHp0IGF1Y2ggd2llZGVyIHZvbiBkZXIgSW5zZWwKcnVudGVyIDspCldhcyBtYW4gc2ljaCBub2NoIHVlYmVybGVnZW4ga29lbm50ZSBpc3QsIGRhcyBTZWhlciBOSUNIVCBtZWhyIGRvcnQgCnJ1bXNwaWVsZW4ga29lbm5lbiwgc29uZGVybiBudXIgcmVpbmUgU3BpZWxlci4gSG93YWJvdXRpdD8KCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogU3BpZWxwbGF0eiAoUmFmZmksICA3LiBPa3QgMTk5NiwgMTU6NDE6MzYpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg0NDY4NTE4MAp+IyEgdGlkPTg0NDI3ODU1MQoKSG1tIEpvLCBkaWUgSWRlZSBnZWZhZWxsdCBtaXIuCgpJY2ggZ2VoIG1hbCBkYXZvbiBhdXMgZGFzIGR1IGRpZSBzY2hyYW5rZSBhbiAxODAwIFN0dXBzIGZlc3RnZW1hY2h0IGhhc3QgdW5kCm5pY2h0IGFuIExldmVsIDE4ID8hIChXb2Z1ZXIgaGFiZW4gd2lyIGRlbm4gZGFzIG5ldWUgU3lzdGVtPykKCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBTcGllbHBsYXR6IChHcmltbWJvcm4sICA3LiBPa3QgMTk5NiwgMTU6NTI6MzcpOgp+IyEgcm49UmFmZmkgcnQ9ODQ0Njk1Njk2Cn4jISB0aWQ9ODQ0Mjc4NTUxCgpJY2ggZXJpbm5lciBtY2loLCBkYXNzIGRhcyBIaW5zdGVsbGVuIHZvbiBNb25zdGVybiB1bmQgR2VnZW5zdGFlbmRlbiBkYW1hbHMKbWFzc2l2c3QgYWJnZXNjaG1ldHRlcnQgd29yZGVuIGlzdCwgYWxzIGRlciBTcGllbHBsYXR6IGVpbmdlZnVlaHJ0IHdvcmRlbiBpc3QuCldhcyBlaW5lciBkZXIgR3J1ZW5kZSBmdWVyLi4ubWFuZ2VsbmRlIEFremVwdGFueiBnZXdlc2VuIHNlaW4ga2Fubi4KVW5kIHNvIHNjaG9lbiBkaWUgSWRlZSBkZXMgVGVzdGdlYmlldGVzIGlzdDogV2VubiBkYSBhdWNoIG51ciBlaW4gU3BpZWxlcgptZWNrZXJ0LCB3ZWlsIGVpbiBuaWNodCBnYW56IGF1c2dlcmVpZnRlcyBUZWlsIHouQi4gc2FlbXRsaWNoZSBTdHVmZW5wdW5rdGUKZ2Vsb2VzY2h0IGhhdCAoaWNoIGhhYiBzY2hvbiBQZmVyZGUga290emVuIHNlaGVuLi4uKSwgd2FzIGRhbm4/IE5lbmUsIHNvCmFsbGdlbWVpbiBTcGllbGVyIHRlc3RlbiBsYXNzZW4gaXN0IG5pY2h0LCBkYSBrb2VubnQgaWhyIGdhYW56IHNpY2hlciBzZWluLCBzbwpzaWNoZXIgYWxzIG9iIGRpZSBGcmF1IHZvbiB1bnMgVXdlIGluIHNlaW4gQmVueiBkYXMgYXVzZ2VyZWNobmV0IGhhZXR0ZS4uLgoKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogU3BpZWxwbGF0eiAoU2FlbmdlciwgIDcuIE9rdCAxOTk2LCAxNjowMzozMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ0Njk2MzU3Cn4jISB0aWQ9ODQ0Mjc4NTUxCkVzIHdhciBhdWNoIGVoZXIgZ2VkYWNodCBkaWUgQXVzZ2V3b2dlbmhlaXQgenUgdGVzdGVuLCB1bmQgbmljaHQgZGllIGZlaGxlci4KU2Flbmdlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBTcGllbHBsYXR6IChBenp1cm8sICA3LiBPa3QgMTk5NiwgMTY6NDU6MjEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0NDY5NjM1Nwp+IyEgdGlkPTg0NDI3ODU1MQpXbyBpc3QgZGVyIFVudGVyc2NoaWVkLCBvYiBlaW4gTWFnaWVyIGVpbiBNb25zdGVyIGRvcnRoaW4gc3RlbGx0IG9kZXIgc29uc3QKaXJnZW50d28gaW0gTXVkIHVudGVyYnJpbmd0LiBEYXMgZWluemlnZSwgZGFzcyBkZXIgU3BpZWxlciBiZWVpbmZsdXNzdCBpc3QgamEKbnVyIGRhcyBBdXNzZWhlbiB1bmQgZGllIHVuZ2VmYWVocmUgU3RhcmtlIGRlcyBNb25zdGVycy4KCkF6enVybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IFNwaWVscGxhdHogKEdyaW1tYm9ybiwgIDcuIE9rdCAxOTk2LCAxNjo0ODowNSk6Cn4jISBybj1Benp1cm8gcnQ9ODQ0Njk5NTIxCn4jISB0aWQ9ODQ0Mjc4NTUxCgpEdSAob2RlciBqZW1hbmQgYW5kZXJzKSBoYXR0ZXN0IHdhcyBkYXZvbiBnZXNjaHJpZWJlbiwgZGFzcyBlcyBrZWluZSBLb250cm9sbGUKdWViZXIgUk0vRU0gZ2ViZW4gc29sbHRlLiBTZWkgcmVhbGlzdGlzY2g6IERhcyBrYW5uc3QgRHUgRGlyIHZvZWxsaWcgdm9uIGRlcgpCYWNrZSBrcmF0emVuLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEga3VyenplaXRpZyBnZXNwZXJydCAoRHVyaWFuLCAyOC4gT2t0IDE5OTYsIDE1OjE3OjE4KToKCkhhbGxvIHVzYW1tZW4hCgpiZWkgbWlyIGlzdCBkYXMgIGthcHV0dCwgZGVzaGFsYiBzb3JyeS4KCk9rYXksIGRpZSBBcmVuYSBoYXQga2xlaW5lIEFuZmFlbGxlIGRpZSBpY2ggaW0gbW9tZW50IG5pY2h0IGJlaGViZW4ga2Fubi4KRGFoZXIgaGFiZSBpY2ggc2llIG1hbCBrdXJlaXRpZyBhYmdlaGFlbmd0LiBXZW5uIGljaCBtYWwgd2llZGVyIGVpdCBmaW5kZSwKdmVyc3VjaGUgaWNoIGRlbiBGZWhsZXIgdSBmaW5kZW4uIEJpcyBkYWhpbjogc29ycnkgdW5kIEdlZHVsZCEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJlbmEga3VyenplaXRpZyBnZXNwZXJydCAoUXVhc2ltb2RvLCAzMS4gT2t0IDE5OTYsIDEyOjMyOjA3KToKfiMhIHJuPUR1cmlhbiBydD04NDY1MTIyMzgKfiMhIHRpZD04NDY1MTIyMzgKS29lbm50ZSBtYW4gaW4gZGVyIEFyZW5hIGVpZ2VudGxpY2ggYXVjaCBtYWwgU2NoYXVrYWVtcGZlIE1vbnN0ZXIgZ2VnZW4KTW9uc3RlciBhdXN0cmFnZW4/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcmVuYSBrdXJ6emVpdGlnIGdlc3BlcnJ0IChEdXJpYW4sIDMxLiBPa3QgMTk5NiwgMTI6MzU6MjcpOgp+IyEgcm49UXVhc2ltb2RvIHJ0PTg0Njc2MTUyNwp+IyEgdGlkPTg0NjUxMjIzOApTdGVodCBtaXQgYXVmIG1laW5lciAobmljaHQga3VyemVuKSBUT0RPLUxpc3RlIC4uLgoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIHdpZWRlciBvZmZlbiAoRHVyaWFuLCAgMS4gTm92IDE5OTYsIDEzOjM4OjI0KToKCkhhbGxvIHp1c2FtbWVuIQoKRGllIEFyZW5hIGlzdCB3aWVkZXIgZXJvZWZmbmV0LCBmcm9laGxpY2hlcyBXZWl0ZXJtZXR6ZWxuIQoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvJ24gU2NoZWlzcyAuLi4gKEFubmloaWxhdG9yLCAxNS4gTm92IDE5OTYsIDE5OjQ0OjI4KToKCkhhbGxvIC4uLgoKU29lYmVuIHBhc3NpZXJ0IDoKCnRyYWdlIGhlbG0gRGVyIEJ1bWVyYW5nCkR1IHppZWhzdCBkZW4gVGFybmhlbG0gYW4uCkR1IHNwcmljaHN0IGRpZSBtYWdpc2NoZW4gV29ydGUgOiAnRGVtIEhhdXB0IGZ1ZWd0IHNpY2ggZGVyIEhlbG0sIG9iCmRlciBzaWNoIGRlciBaYXViZXIgYXVjaCB6ZWlndCA/IE5hY2h0IHVuZCBOZWJlbCwgbmllbWFuZCBnbGVpY2ggIScKRHUgYmlzdCBqZXR6dCBlaW4gQnVtZXJhbmchCm5pbW0gMjAwMDAgbXVlbnplbiBhdXMgcGFrZXQKRHUgbmltbXN0IDIwMDAwIE11ZW56ZW4uCmthdWZlIHBhcGFnZWkgbmFtZW5zIEJ1bWVyYW5nCkRhcyBrb3N0ZXQgRGljaCAyMDAwMCBNdWVuemVuLgpEdSBiZWtvbW1zdCBlaW5lbiBQYXBhZ2VpZW4gdW5kIGVpbiBaZXJ0aWZpa2F0IG1pdCBIaW53ZWlzZW4uCnNhZyBidW1lcmFuZywgZmxpZWcgenUgbWFuZ28KRHUgc2Fnc3Q6IGJ1bWVyYW5nLCBmbGllZyB6dSBtYW5nbwpXbyBpc3QgRGVpbiBaZXJ0aWZpa2F0IGhpbj8gU28ga2FubiBhdWNoIGtlaW4gVGllciBnZWhvbHQgd2VyZGVuLCBkZXNoYWxiCndpcmQgZGVyIEthZWZpZyBqZXR6dCBkZXN0cnVjdGVkLgoKYWVobSAuLi4gaWNoIGhhZXR0IGdlcm4gZGllIDIwayBtdWVuemVuIHdpZWRlciA7KQoKQW5uaWhpbGF0b3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBhbG1lIHVtZ2VmYWxsZW4hIChXYXJnb24sIDExLiBGZWIgMTk5NywgMTQ6Mjc6MDApOgogIEhpIQpJbiBkZXIgV3Vlc3RlIHVlYmVyc2NobGFnZW4gc2ljaCBtYWwgd2llZGVyIGRpZSBFcmVpZ25pc3NlIQpEZXIgQmFzYXIgaW4gRGplbGliZWJ5IGlzdCB3aWVkZXIgdW0gZWluZSBBdHRyYWt0aW9uIHJlaWNoZXIhCiAgV2FyZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGFsbWUgdW1nZWZhbGxlbiEgKENhdHdlYXpsZSwgMTMuIEZlYiAxOTk3LCAxOTo1OTo0MSk6Cn4jISBybj1XYXJnb24gcnQ9ODU1NjY3NjIwIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODU1NjY3NjIwClNhbWEhCgpUaWNrc3QgRHUgbm9jaCBnYW56IHNhdWJlcj8KCkR1IHdpbGxzdCBtaXIgbmljaHQgaW0gRXJuc3Qgc2FnZW4sIGRhc3MgRHUgZWluZSB2b24gbWVpbmVuIHd1bmRlcnNjaG9lbmVuClBhbG1lbiB1bWdlc2FlYmVsdCBoYXN0LCBvZGVyPyBIb2VtbWEsIGRpZSBzaW5kIGhhbmRnZXNhZXQhCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUGFsbWUgdW1nZWZhbGxlbiEgKFNoYXJpYSwgMTMuIEZlYiAxOTk3LCAyMDowMDoyNSk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9ODU1ODYwMzgxIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODU1NjY3NjIwCkljaCBoYWJzIGdlbmF1IGdlc2VoZW4gISEgVW5kIGRlciBIdW5kIHZvbiBBc21vZGlzIGhhdCBhdWNoIG5vY2ggZHJhbmdlcGlua2VsdAohISEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBQYWxtZSB1bWdlZmFsbGVuISAoQXNtb2RpcywgMTMuIEZlYiAxOTk3LCAyMDowMzoxMyk6Cn4jISBybj1TaGFyaWEgcnQ9ODU1ODYwNDI1IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODU1NjY3NjIwCkhtcGYsIGxhc3N0IG1laW5lbiBIdW5kIGF1cyBkZW0gU3BpZWwsIGRlciBrYW5uIG5peCBkYWZ1ZXIsIGRpZQpQYWxtZSB3YXIgc2Nob24gdm9yaGVyIHRvdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFBhbG1lIHVtZ2VmYWxsZW4hIChGeXQsIDEzLiBGZWIgMTk5NywgMjA6MDQ6MTUpOgp+IyEgcm49U2hhcmlhIHJ0PTg1NTg2MDQyNSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMAoKRGVyIEh1bmQgdm9uIEFzbW9kaXMgaGFldHRlIGRhcyBESW5nIGhvZWNoc3RlbnMgYXBwb3J0aWVydC4uLgoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogUGFsbWUgdW1nZWZhbGxlbiEgKENhdHdlYXpsZSwgMTMuIEZlYiAxOTk3LCAyMDozMjoyMCk6Cn4jISBybj1GeXQgcnQ9ODU1ODYwNjU1IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODU1NjY3NjIwCgpWZXJkYW1tdGUgVG9lbGUhCgpBc21vZGlzISBTYWcgZGVtIFZpZWgsIGVzIHNvbGwgbWVpbmUgUGFsbWUgd2llZGVyIGJyaW5nZW4uIFNvbnN0IGxvZXNjaAppY2ggd2FobGxvcyBad2VpdGllcyEKCllUQwoKS29tbSwgc3Vlc3NlcyBIdW5kY2hlbiwga29tbSAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFBhbG1lIHVtZ2VmYWxsZW4hIChBbnRoZWEsIDEzLiBGZWIgMTk5NywgMjA6NDU6MjgpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTg1NTg2MjM0MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMApKYWphLCB3YXMgd2lsbCBtYW4gYXVjaCBzY2hvbiB2b24gSHVuZGVuIGVyd2FydGVuLCBkaWUgaW4gZGVyIFd1ZXN0ZQpydW1sdW5nZXJuLiBJY2ggbWVpbiwgZGEga2FubiBpY2ggc2Nob24gdmVyc3RlaGVuLCBkYXNzIGRhIGVpbiBIdW5kIHNpY2ggbmUKUGFsbWUga2xhdXQsIHNjaGxpZXNzbGljaCBtdXNzIGVyIGRhbm4gbmljaHQgaW1tZXIgc28gbGFuZ2Ugc3VjaGVuLCBiaXMgZXIgbmVuCkJhdW0gZmluZGV0LiBXZW5uIG1hbiBlbmRsaWNoIGRpZSBXdWVzdGUgZmx1dGV0LCBkYW5uIGthbm4gaWNoIGRhIG1laW5lClNlZWh1bmRlIGFuc2llZGVsbiwgZGllIGJlbmVobWVuIHNpY2ggdmllbCBhbnN0YWVuZGlnZXIuIFZvciBhbGxlbSBoYWJlbiBkaWUKZXMgYXVjaCBuaWNodCBub2V0aWcsIFBhbG1lbiB6dSBlbnRmdWVocmVuIG9kZXIgenUgbWlzc2JyYXVjaGVuIQoKQW50aGVhCiAgIHBsYWVkaWVydCBzY2hvbiBsYW5nZSBkYWZ1ZXIsIGRpZXNlbiB1ZWJlcmdyb3NzZW4gU3RyYW5kIHp1IGZsdXRlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFBhbG1lIHVtZ2VmYWxsZW4hIChNdXJrZXMsIDE0LiBGZWIgMTk5NywgMDg6MjQ6MzMpOgp+IyEgcm49QW50aGVhIHJ0PTg1NTg2MzEyOCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMAoKSG0sIHNlaWQgaWhyIHNpY2hlciwgZGFzcyBkYXMgQXNtb2RpcyBIdW5kIGdld2VzZW4gaXN0PyAKSWNoIGhhYmUgbmFlbWxpY2ggenUgbWVpbmVyIGdyb2Vzc3RlbiBWZXJ3dW5kZXJ1bmcgZ2VzdGVybiBlaW5lbiBXb2xwZXJ0aW5nZXIKbWl0IGVpbmVyIFBhbG1lIGltIHVuZGVmaW5pZXJiYXJlbiBNYXVsIGR1cmNoIFBWIGxhdWZlbiBzZWhlbi4gVmllbGxlaWh0CnNvbGx0ZSBtYW4gaW0gQ2x1YiBtYWwgZWluZSBSYXp6aWEgbWFjaGVuPyBPZGVyIHZpZWxsZWljaHQgZ2xpZWNoIGRhcwpIb2VsbGVuZmV1ZXIgbWl0YnJpbmdlbj8KCk11cmtlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogUGFsbWUgdW1nZWZhbGxlbiEgKEFjcmltb24sIDE1LiBGZWIgMTk5NywgMTQ6MDQ6NTgpOgp+IyEgcm49TXVya2VzIHJ0PTg1NTkwNTA3MyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMApTbyB6aWVodCBzaWNoIEFzbW9kaXMnIEh1bmQgYXVzIGRlciBBZmZhZXJlIDotKQpFciBzdGVja3QgZGllIFBhbG1lIGVpbmZhY2ggZWluZW0geC1iZWxpZWJpZ2VuIGRhaGVyZ2VsYXVmZW5lbiBXb2xwZXJ0aW5nZXIKenUuCgpXaWUgc29sbGVuIHdpciBqZXR6dCBkZW4gcmljaHRpZ2VuIFdvbHBlcnRpbmdlciB3aWVkZXJmaW5kZW4/CgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IFBhbG1lIHVtZ2VmYWxsZW4hIChPcmt0b2V0ZXIsIDE3LiBGZWIgMTk5NywgMTA6MDQ6NTYpOgp+IyEgcm49QWNyaW1vbiBydD04NTYwMTE4OTggcmc9ZC53dWVzdGUKfiMhIHRpZD04NTU2Njc2MjAKCkFsc28gaWNoIG11c3MgamEgd29obCBiaXR0ZW4gIQpXb2xwZXJ0aW5nZXIgc2luZCBuaWNodCBlaW5mYWNoIHNvIHgtYmVsaWViaWcgZGFoZXJnZWxhdWZlbiAhCkRhcyBzb2xsdGUgamVkZXIgd2lzc2VuLCBkZXIgZGllIGVudHNwcmVjaGVuZGUgUXVlc3QgbWFsIGdlbWFjaHQgaGF0LgoKT3JrVCwgZGVyIHNpY2ggc2ljaGVyIGlzdCwgZGFzIGVzIGtlaW4gc3Vlc3NlciBrbGVpbmVyIHd1c2NoZWxpZ2VyIFdvbHBpZSB3YXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBQYWxtZSB1bWdlZmFsbGVuISAoQ2F1bm8sIDE3LiBGZWIgMTk5NywgMTI6MTE6MDEpOgp+IyEgcm49QWNyaW1vbiBydD04NTYwMTE4OTggcmc9ZC53dWVzdGUKfiMhIHRpZD04NTU2Njc2MjAKVW5kIHdhcywgd2VubiBkZXIgSHVuZCBkaWUgUGFsbWUgdmVyYnVkZGVsdCBoYXQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBQYWxtZSB1bWdlZmFsbGVuISAoRHVyaWFuLCAxOC4gRmViIDE5OTcsIDE2OjQ1OjUwKToKfiMhIHJuPUNhdW5vIHJ0PTg1NjE3Nzg2MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMAoKSmVkZXIsIGRlc3NlbiBIdW5kIGluIGRlciBXdWVzdGUgZWluZSBQYWxtZSBhbnBpbmtlbHQgb2RlciBhcHBvcnRpZXJ0LApvZGVyIHdlciBzZWxic3QgZWluZSBQYWxtZSBhbnBpbmtlbHQgb2RlciBhcHBvcnRpZXJ0IHdpcmQgbWl0IFdhbGQtCmF1ZmVudGhhbHQgbmljaHQgdW50ZXIgNCBXb2NoZW4gYmVzdHJhZnQhCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IFBhbG1lIHVtZ2VmYWxsZW4hIChGeXQsIDE4LiBGZWIgMTk5NywgMjI6MjQ6MjEpOgp+IyEgcm49RHVyaWFuIHJ0PTg1NjI4MDc1MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMAoKSG0sIHdlbm4gaWNoIHZpZXIgV29jaGVuIFdhbGR1cmxhdWIgYmVrYWVtZSwgbXVlc3N0ZSBpY2ggbmljaHQgZXJzdAptZWluZW4gSHVuZCB6dW0gcGFsbWVua2xhdWVuIHNjaGlja2VuLi4uCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogUGFsbWUgdW1nZWZhbGxlbiEgKFF1bWUsIDE5LiBGZWIgMTk5NywgMTI6MDY6NDcpOgp+IyEgcm49RHVyaWFuIHJ0PTg1NjI4MDc1MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMApPaCBqZSwgZWluZSBzY2hyZWNrbGljaGUgU3RyYWZlISBhdXNnZXJlY2huZXQgV2FsZCEgRGFmdWVyIGdpYnQncyBkb2NoCmV4dHJhIGVpbiBKYWlsLCBzb3ZpZWwgaWNoIHdlaXNzLi4uIEphLCBqYSwgd2llZGVyIG1hbCBlaW4ga2xhc3Npc2NoZXMKQmVpc3BpZWwgZGFmdWVyLCBkYXNzIE1hZ2llciBlaW5mYWNoIHdhaGxsb3MgdW5kIHdpbGxrdWVybGljaCB2b2VsbGlnCnVuYW5nZW1lc3NlbmUgU3RyYWZlbiB2ZXJoYWVuZ2VuLi4uCgpRdW1lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogUGFsbWUgdW1nZWZhbGxlbiEgKEdyaW1tYm9ybiwgMTkuIEZlYiAxOTk3LCAxMjoxMDo1Nik6Cn4jISBybj1RdW1lIHJ0PTg1NjM1MDQwNyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMApIbW0sIHZlcnR1IERpY2ggbmljaHQsIGphaWwgbmltbXQgZXIgbmljaHQgd2VpbCBlciBiZWZ1ZXJjaHRldCwgZGFzcyBtYW4gZGllCkFlaG5saWNoa2VpdCB6dXIgV3Vlc3RlIGVya2VubnQ6IEVnYWwgaW4gd2VsY2hlIFJpY2h0dW5nIG1hbiBnZWhlbiBtb2VjaHRlLApkaWUgR2VnZW5kIHZlcmFlbmRlcnQgc2ljaCBuaWNodCwgZXMgaXN0IGtlaW4gYW5kZXJlciBkYSBtaXQgZGVtIG1hbiBzaWNoCnVudGVyaGFsdGVuIGtvZW5udGUsIG1hbiB2ZXJtZWlkZXQgZXMgbW9lZ2xpY2hzdCwgZXMgd2FjaHNlbiBrZWluZSBCYWV1bWUsIGVzCndpcmQgZWluZW0gc2NobmVsbCBsYW5nd2VpbGlnIHVuZCBtYW4gbW9lY2h0ZSBzY2huZWxsIHdlZywga2FubiBhYmVyIG5pY2h0Li4uCm51ciBkZXIgU3RyYW5kIGluIGRlciBXdWVzdGUgaXN0IHNjaG9lbmVyLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogUGFsbWUgdW1nZWZhbGxlbiEgKFdhcmdvbiwgMTkuIEZlYiAxOTk3LCAxMjoyMTowMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODU2MzUwNjU2IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODU1NjY3NjIwClVuZCBpbSBKYWlsIGdpYnRzIG5hdHVlcmxpY2ggYXVjaCBrZWluZW4gU29ubmVuYnJhbmQuCk9id29obC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBQYWxtZSB1bWdlZmFsbGVuISAoU2lsdmFuYSwgMjAuIEZlYiAxOTk3LCAwNzozNTo0OCk6Cn4jISBybj1EdXJpYW4gcnQ9ODU2MjgwNzUwIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODU1NjY3NjIwCkhtbW0sIGludGVyZXNzYW50Li4uIERhZnVlciBnaWJ0J3MgYWxzbyBiZWkgRXVjaCB2ZXJkaWVudGVuIEVyaG9sdW5ncy0KdXJsYXViLiBXb2xsdCBpaHIgYXVmIGRpZSBBcnQgZnVlciByZWdlbG1hZXNzaWdlIFdhZXNzZXJ1bmcgRXVyZXIgcGFhcgpCYWV1bWNoZW4gc29yZ2VuPwoKICBTaWx2YW5hIChsaWVidCB1bmtvbnZlbnRpb25lbGxlIExvZXN1bmdlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFBhbG1lIHVtZ2VmYWxsZW4hIChNdXBmZWwsIDI1LiBGZWIgMTk5NywgMTQ6NTM6MDkpOgp+IyEgcm49QW50aGVhIHJ0PTg1NTg2MzEyOCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg1NTY2NzYyMApBbnRoZWE/IEFudGhlYSwgd2VyIHdhciBub2NoIEFudGhlYS4uLiBhY2hqYSBkYW1hbHMgYWxzIGljaCBub2NoIGVpbiBrbGVpbmVyClNwaWVsZXIuLi4gd2lsbGtvbW1lbiB6dXJ1ZWNrICh1bmQgVHJveSBoYXN0ZSBhdWNoIGdsZWljaCBtaXRnZWJyYWNodC4uIHdlbgpkdWVyZmVuIHdpciBub2NoIGVyd2FydGVuLCB3aWVkZXJhdWZlcnN0YW5kZW4gdm9uIGRlbiBWZXJnZXNzZW5lbj8gOi0pCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29saWRhcml0YWV0IG1pdCBTcGllbGVybi4uLiAoTmFpcm9sZiwgMTQuIEFwciAxOTk3LCAxODozNToxOSk6CgpJbSBadWdlIGRlciBhbGxnZW1laW5lbiBHZWJpZXRzc2NobGllc3N1bmdlbiB3aXJkIG1laW4gR2ViaWV0IHVuZCBkYXMKdmVyc3Byb2NoZW5lIERyYWNoZW5iYWJ5IHZvcmVyc3QgYXVmIEVpcyBnZWxlZ3QsIGRhIGljaCBqYSBzY2hlaW5iYXIgbnVuCmdlend1bmdlbiBiaW4gZWluZW4gbmV1ZW4gS2xlcmlrZXIuLiB1bmVya2FubnQuLiBhdXMgZWluZXIgYW5kZXJlbiBTdGFkdAplaW5nZWxvZ2d0Li4gaG9jaHp1c3BpZWxlbi4uLiBuZWluIHdhcyBmdWVyIGVpbiBCbG9lZHNpbm4sIGFiZXIgaWNoIHdlcmRlIHdvaGwKaW4gZWluZXIgYW5kZXJlbiBSdWJyaWsgYXVjaCBtYWwgc3RlbGx1bmcgbmVobWVuLi4gdW50ZXIgYW5kZXJlbSBOYW1lbi4uIG9kZXIKc28uLi4uLm5hamEga2VpbmUgU29yZ2UuLiBJQ0ggd2VyZGUgZGFzIEdlYmlldCBmZXJ0aWcgbWFjaGVuIHVuZCBob2ZmZW4gZGFzCmlyZ2VuZGVpbiBNYWcgZXMgYW5zY2hsaWVzc2VuIHdpcmQuLi4gCktpbm5lcnMgd2FzIHNlaWQgaWhyIHBlaW5saWNoLi4uLi4uLi4uCgpLaW5uZXJzPUVyem1hZ2llciB1bmQgaG9laGVyLi4uLgoKLi4uLi4uLi4uLi4uLi4uLi4uCgoKQWxzbyBudW4gbWFsIGVocmxpY2ggbGllYmUgRXJ6bWFnaWVyLi4uLiAoZmFsbHMgaXJnZW5kd2VyIGRpZXNlIFJ1YnJpayBoaWVyCmxpZXN0Li4uLikKCkRhcyB3YXMgaWhyIGhpZXIgYmV0cmVpYnQgZGllbnQgc2ljaGVybGljaCBuaWNodCBnZXJhZGUgZGVyIFN0aW1tdW5nIGltIE1HLi4uCkljaCBoYWJlIHdpZSBkZW4gbWVpc3RlbiBiZWthbm50IHNlaW4gZHVlcmZ0ZSBlaW5lbiBTcGllbGVyLVp3ZWl0aSB1bmQgZGFkdXJjaApiZWtvbW1lIGljaCBlaW5pZ2VzIG1pdCB3YXMgc28gdW50ZXIgc3BpZWxlcm4gVU5EIE1hZ2llcm4gYWJnZWh0Li4uLiBJSFIKamVkb2NoIHNjaGVpbnQgamV0enQgd28gaWhyIG1hbCBlaW4gb2RlciAyIGdlc3ByYWVjaGVuIHZvbiBTcGllbGVybiB6dWdlaG9lcnQKaGFidCBUT1RBTCBzY2hvY2tpZXJ0IHp1IHNlaW4gdW5kIHJlYWdpZXJ0IGF1ZiBlaW5lIHNvbGNoZSAoaW4gbWVpbmVuIGF1Z2VuKQp1bmJlaG9sZmVuZSBBcnQgdW5kIFdlaXNlLgpTb3JyeSwgYWJlciBTTyBpc3QgZGVtIFByb2JsZW0gbmljaHQgYmVpenVrb21tZW4uLi4KSWNoIG1vZWNodGUgaGllciBqZXR6dCBuaWNodCBDQVQqIGFuZ3JlaWZlbiwgZGVubiBkZXIga2FubiBuaWNodHMgZGFmdWVyLCBkYXNzCmVyIFNoZXJpZmYgaXN0LCBiencgZGFzIGVyIGtlaW5lIFplaXQgaGF0IGJ6dyBtZWhyIFplaXQgaGF0Li4uIGFiZXIgaGFidCBpaHIKZXVjaCB1ZWJlcmxlZ3QgZWluZW4gYW5kZXJlbiwgYnp3IHp1c2FldHpsaWNoZSBTaGVyaWZmcyBlaW56dXNldHplbiA/Pz8KVmllbGxlaWNodCBTaGVyaWZmcywgZGllIG1laHIgWmVpdCBoYWJlbiwgU2hlcmlmZnMgZGllIGVpZ2VuZSBTUGllbGVyIGhhYmVuID8/ClNoZXJpZmZzIGRpZSBXSVNTRU4gd2FzIHdpcmtsaWNoIGFiZ2VodCA/Pz8KSWNoIGxhY2ggbWljaCB0b3Qgd2VubiBpY2ggaW4gZGVyIEtsZXJ1c2dpbGRlIHN0ZWhlIHVuZCBtaXIgZGllIG9iZXJzdGVuClBsYWV0emUgYW5zZWhlLi4gZ2V0YW4gaGF0IHNpY2ggZGEgZmFzdCBuaXggbmFjaGRlbSBXYXJnb24gc2FndGUgZGFzIGRpZQpuaWNodG1laHIgdm9uIE1hZ2llcnp3ZWl0aXMgYmVrbGVpZGV0IHdlcmRlbiBkdWVyZmVuLi4gamVkb2NoIGZhbGxlbiBtaXIgZGEKZWluaWdlIHNwb250YW4gZWluLi4gZGFzIHNvbGwga2VpbiB2b3J3dXJmIHNlaW4gYW4gZGllIGRpZSBkYXMgdHVuLCBqZWRvY2ggcnVmCmljaCBkYXp1IGF1ZjogWkVJR1QgRVVDSCBOSUNIVCAhISEhIApFcnptYWdpZXI6IHdlbm4gaWhyIHdpcmtsaWNoIGV0d2FzIGVycmVpY2hlbiB3b2xsdDogc2NobGV1c3Qgc3Bpb25lIGVpbiwKZ3JlaWZ0IGhhZXJ0ZXIgZHVyY2ggb2RlciBhZWhubGljaGVzLi4uIHNjaGxlY2h0IGZhZW5kZSBpY2ggZXMgbmljaHQsIGRlbm4gZGFzCndhcyBtYW5jaGUgYmV0cmVpYmVuIGlzdCB3aXJrbGljaCB1ZWJlcnRyaWViZW4uLi4gYWJlciBzdHJlbmd0IGV1Y2ggYW4gdW5kCmZpbmRldCBkaWUgd2lya2xpY2ggc2NodWxkaWdlbi4uLiAhISEgClNwaWVsZXIgenUgYmVzdHJhZmVuLCB3ZWlsIEFOREVSRSBTcGllbGVyIG9kZXIgTWFnaWVyIFNjaGVpc3NlIGdlbWFjaHQgaGFiZW4sCmlzdCBzY2hvbiBpbW1lciBzY2hsZWNodCBnZXdlc2VuIHVuZCBzbyB3aXJkIGVzIGF1Y2ggYmxlaWJlbi4uLiBzbyBlcnJlaWNodAppaHIgbmljaHQgdmllbCBtZWluZXIgbWVpbnVuZyBuYWNoLi4uCk5vY2ggZWluZSBJZGVlIHp1ciBBYnNjaGFmZnVuZyBkZXIgU3BpZWxlcmhpbGZlOiBhZW5kZXJ0IGRpZQpMZXNlL3NjaHJlaWJyZWNodGUgYWxsZXIgTWFnaWVyIHVudGVyIGxldmVsIDU1ICEhISBkZW5uIGRydWViZXIgaGFiIGljaCBub2NoCmtlaW5lbiBnZXRyb2ZmZW4gZGVyIHNwaWVsZXJuIGhpbGZ0Li4gYWJlciBkcnVudGVyIGdlbnVnLi4uCldpZXNvIGthbm4gaWNoIGFscyBsZXZlbCAyNSBNYWdpZXIgc2tpbGxzIHNldHplbiA/IGVzIGlzdCBlaCBuaWNodCBlcmxhdWJ0IHVuZAp3ZW5uIGljaCBuZW4gdGVzdGkgaGFiZW4gd2lsbC4uLiB0amEgZGFubiBtdXNzIGljaCBoYWx0IG5lbiBFcnppIGFubGFiZXJuICgKZGVyIGRhcyBkYW5uIGFiZXIgYXVjaCBiaXR0ZSBvaG5lIG11cnJlbiBtYWNoZW4gc29sbHRlLi4uIHp1ZGVtIHNvbGx0ZSBlcyBtZWhyCmVyemllcyBnZWJlbi4uLi5hYmVyIGRhcyBpc3QgZXVyZSBzYWNoZS4uKQoKTmFpcm9sZiwgZGVyIGhvZmZ0LCBkYXNzIGVyIG5pY2h0IHp1IGhhcnQgZ2VzcHJvY2hlbiBoYXQgdW5kIGRlciBzaWNoZXJsaWNoCm5vY2ggbGFuZ2UgbmljaHQgc2Nod2VpZ3QuLi4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU29saWRhcml0YWV0IG1pdCBTcGllbGVybi4uLiAoQW5hdG9sLCAxNC4gQXByIDE5OTcsIDE4OjM3OjM4KToKfiMhIHJuPU5haXJvbGYgcnQ9ODYxMDM1NzE5IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODYxMDM1NzE5Ck5haXJvbGYgc2NocmllYjoKTm9jaCBlaW5lIElkZWUgenVyIEFic2NoYWZmdW5nIGRlciBTcGllbGVyaGlsZmU6IGFlbmRlcnQgZGllCkxlc2Uvc2NocmVpYnJlY2h0ZSBhbGxlciBNYWdpZXIgdW50ZXIgbGV2ZWwgNTUgISEhIGRlbm4gZHJ1ZWJlciBoYWIgaWNoIG5vY2gKa2VpbmVuIGdldHJvZmZlbiBkZXIgc3BpZWxlcm4gaGlsZnQuLiBhYmVyIGRydW50ZXIgZ2VudWcuLi4KW3ppdC4gZW5kZV0KCkR1IG5pY2h0LCBOYWlyb2xmLgoKQmVnaW5udCBkZXIgVGF0c2FjaGUgZGVzIHN0cmVzc2lnZW4gU2VtZXN0ZXJiZWdpbm5zIHRhdHNhZWNobGljaCBldHdhcwpQb3NpdGl2ZXMgYWJ6dWdld2lubmVuLCAKQW5hdG9sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTb2xpZGFyaXRhZXQgbWl0IFNwaWVsZXJuLi4uIChOYWlyb2xmLCAxNC4gQXByIDE5OTcsIDE4OjM5OjEzKToKfiMhIHJuPUFuYXRvbCBydD04NjEwMzU4NTggcmc9ZC53dWVzdGUKfiMhIHRpZD04NjEwMzU3MTkKCk5hamEgQW5hdG9sLi4uIG9rIGR1IGJpc3QgYXVjaCBzY2hvbiBsYWVuZ2VyIGRhYmVpIG9kZXIgPyA6LSkpKQoKTmFpcm9sZiwgZXJzdCAyLTMgSmFocmUgZGFiZWkgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJc3QgamEgd3Vlc3QgbGVlciBoaWVyIChIYXJkaWwsIDE2LiBKdW4gMTk5NywgMTE6MTA6MzMpOgoKV2FzIGlzdCBsb3MgbWl0IGRlbiBXdWVzdGVubWFnaWVybj8gQWxsZSBhbSBTYW5ka29ybnphZWhsZW4/Ck51ciwgd2VpbCBPYmVyZHVlbmUgRGFuY15IXkheSHVyaWFuIGdlcmFkZSBtYWwgVXJsYXViIGluIE9saXZncnVlbiBtYWNodCwKZmFsbGVuIGhpZXIga2VpbmUgUGFsbWVuIG1laHIgdW0sIHVuZCBkaWUgUnVicmlrIGlzdCBzY2hvbiBzZWl0IFdvY2hlbiBsZWVyLgpTbyBrYW5uIGRhcyBuaWNodCB3ZWl0ZXJnZWhlbi4KSWNoIHJ1ZmUgenVyIE5OTi1Ba3Rpb24gIlJldHRldCBkLnd1ZXN0ZSIgYXVmIQoKTk5OIQoKLUhhcmRpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJc3QgamEgd3Vlc3QgbGVlciBoaWVyIChBc21vZGlzLCAxNi4gSnVuIDE5OTcsIDE0OjA2OjAxKToKfiMhIHJuPUhhcmRpbCBydD04NjY0NTIyMzMgcmc9ZC53dWVzdGUKfiMhIHRpZD04NjY0NTIyMzMKTWVpbiBIdW5kIGhhdCBnZXJhZGUgd2llZGVyIGVpbmUgUGFsbWUgYXVzIERqZWxpYmVieSBnZWtsYXV0IC4uLi4uLgpOYWFhID8gcnVlaHJ0IHNpY2ggd2FzID8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSXN0IGphIHd1ZXN0IGxlZXIgaGllciAoRHVyaWFuLCAxNi4gSnVuIDE5OTcsIDE1OjE2OjQwKToKfiMhIHJuPUFzbW9kaXMgcnQ9ODY2NDYyNzYxIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODY2NDUyMjMzCgpNZWluIFVybGF1YiBpbiBPbGl2Z3J1ZW4gZ2VodCBpbiBkaWUgaW0gd2FocnN0ZW4gU2lubmUgZGVzIFdvcnRlcyBoZWlzc2UKUGhhc2UuIEljaCBmYWhyZSBuYWVtbGljaCBuYWNoIEthbmFkYSwgaW5zIFBhcmFkaWVzLCBkZW5uOgoKREEgSVNUIEZBU1QgQUxMRVMgV1VFU1QgVU5EIE9FREUsIEtFSU4gQkFVTSBXRUlUIFVORCBCUkVJVCEhISEKCldhcnVtIG51ciBiaW4gaWNoIHNpY2hlciwgZGFzcyBpY2ggbWlyIGRvcnQgZG9jaCBkZW4gZWluZW4gb2RlciBhbmRlcmVuCnNjaGF0dGVuc3BlbmRlbmRlbiBCYXVtIHd1ZW5zY2hlIHdlcmRlIC4uLiBobW1tIC4uLgoKTWVsZGUgbWljaCBhYiwKCi0gRHVyaWFuLCBPRyB1bmQgUk0gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJc3QgamEgd3Vlc3QgbGVlciBoaWVyIChUZWRkeSwgMTYuIEp1biAxOTk3LCAxODo1OToxMSk6Cn4jISBybj1EdXJpYW4gcnQ9ODY2NDY3MDAwIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODY2NDUyMjMzCkFyZ2whCldhbm4ga29tbXN0IGR1IGRlbm4gd2llZGVyPyBJY2ggdmVybWlzc2Ugc2VpZCBlaW5lbSBoYWxiZW4gSmFociBtZWluIGdlbGllYnRlcwpIYXVzdGllciwgd2VpbCBlaW5lcyBUYWdlcyBtZWluIEthdHplbnplcnRpZmlrYXQgd2VnIHdhci4gOi0oCgpUZWRkeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSXN0IGphIHd1ZXN0IGxlZXIgaGllciAoSGFyZGlsLCAxNy4gSnVuIDE5OTcsIDEyOjU2OjEzKToKfiMhIHJuPVRlZGR5IHJ0PTg2NjQ4MDM1MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg2NjQ1MjIzMwoKTWlyIGtvbW1lbiBkaWUgVHJhZW5lbi4gV2VubiBkYXMgS2F0emVuemVydGlmaWthdCB3ZWcgaXN0LCBkYW5uIGthdWYgRGlyIGRvY2gKZWluZmFjaCAnbmUgbmV1ZSBLYXR6ZS4gRGllIEZ1c3NhYnN0cmVpZmVyIGxlYmVuIGhhbHQgbmljaHQgbGFuZ2UuIEthbm4gZG9jaApwYXNzaWVyZW4uCklzdCB3aWUgaW0gd2FocmVuIExlYmVuLiBLb21tdCBlaW4gQXV0bywgaXN0IGRpZSBLYXR6ZSBmdXRzY2guIFVuZCBkYW5uIGlzdAphdWNoIGtlaW4gRHVyaWFuIGRhLCBkZXIgRGlyICduZSBuZXVlIGNsb250LgoKQWJlciB3ZW5uIER1IGVzIGdlbmF1IHdpc3NlbiB3aWxsc3Q6CkR1cmlhbiBpc3QgYmlzIHp1bSAxMC4gSnVsaSBpbiBLYW5hZGEgYXVmIE1hbm9ldmVyLiBNaXQgUGFuemVybiBzb2xhbmdlIGluIGRlbgpXYWxkIHNjaGllc3NlbiwgYmlzIGRhIG5vY2ggbWVociBXdWVzdGUgaXN0LiBBbHNvIGRpZSBMaWVibGluZ3NiZXNjaGFlZnRpZ3VuZwpkZXIgV3Vlc3Rlbm1hZ2llci4KCk5OTiEKCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBJc3QgamEgd3Vlc3QgbGVlciBoaWVyIChUZWRkeSwgMTcuIEp1biAxOTk3LCAxMzozMDoyMik6Cn4jISBybj1IYXJkaWwgcnQ9ODY2NTQ0OTczIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODY2NDUyMjMzCk5ldWUga2F0emUga2F1ZmVuLCBwYWghIDotKApNZWluIGFybWVzIHRpZXIgbGFldWZ0IGpldHp0IGlyZ2VuZHdvIGRhIGRyYXVzc2VuIGdhbnogYWxsZWluIHVuZCBzY2h1dHpsb3MKcnVtLgpBdXNzZGVtIGJyYXVjaGUgaWNoIGVpbmUgbWl0IGRlbSBnbGVpY2hlbiBOYW1lbiB1bmQgZGFzIGdlaHQgc29uc3QgbmljaHQKClRlZGR5LCBob2VjaHN0IGVtcG9lcnQgdWViZXIgZGllc2UgSGVyemxvc2lna2VpdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IElzdCBqYSB3dWVzdCBsZWVyIGhpZXIgKEphc3BlciwgMTcuIEp1biAxOTk3LCAxMzozMTo0Nik6Cn4jISBybj1UZWRkeSBydD04NjY1NDcwMjIgcmc9ZC53dWVzdGUKfiMhIHRpZD04NjY0NTIyMzMKa2VpbmUgcGFuaWssIHdlbm4gaWNoIG5lIGVpbnNhbWUga2F0emUgc2VoZSwgZGFubiB3aWxsL2thbm4gZGllIG5pY2h0IG1laHIgenUKZGlyIHp1cnVlY2suIDtQCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBJc3QgamEgd3Vlc3QgbGVlciBoaWVyIChUZWRkeSwgMTcuIEp1biAxOTk3LCAxNDoxNzo1OSk6Cn4jISBybj1KYXNwZXIgcnQ9ODY2NTQ3MTA2IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODY2NDUyMjMzCkRhcyB3aWxsIGljaCBzZWhlbiwgZGFzIGR1IGVpbiBoYXVzdGllciB0b2V0ZXN0LgoKTW9lcmRlciBkdQoKVGVkZHksIGVyYm9zdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IElzdCBqYSB3dWVzdCBsZWVyIGhpZXIgKEtyZXRlaywgMTkuIEp1biAxOTk3LCAxMzoyMjoyMCk6Cn4jISBybj1EdXJpYW4gcnQ9ODY2NDY3MDAwIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODY2NDUyMjMzCk9HPyAqKmxhY2gqKiBUb2xsLCBlbmRsaWNoIGthbm4gaWNoIG1hbCAnbmVuIFJNIGlucyBIYWxsbyBzdGVsbGVuISA6LSkKCktyZXRlSyAoSHB0bS4gZC4gUmVzLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IElzdCBqYSB3dWVzdCBsZWVyIGhpZXIgKEhhcmRpbCwgMTkuIEp1biAxOTk3LCAxNTozNToxMCk6Cn4jISBybj1UZWRkeSBydD04NjY1NDk4Nzkgcmc9ZC53dWVzdGUKfiMhIHRpZD04NjY0NTIyMzMKCkZyYWcgZG9jaCBtYWwgQXNtb2RpcywgZGVzc2VuIEh1bmQga2FubiBEZWluIGtvbWlzY2hlcyBLYXR6ZW50aWVyIHNpY2hlcmxpY2gKYXBwb3J0aWVyZW4uCk9iIGRpZSBLYXR6ZSBkYXMgdWViZXJsZWJ0LCBpc3QgbmUgYW5kZXJlIEZyYWdlLCBhYmVyIGRhcyBpc3QgamEgZWlnZW50bGljaAphdWNoIGVnYWwuCgotSGFyZGlsLgpOTk4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBJc3QgamEgd3Vlc3QgbGVlciBoaWVyIChUZWRkeSwgMjAuIEp1biAxOTk3LCAxMDoxODowMyk6Cn4jISBybj1IYXJkaWwgcnQ9ODY2NzI3MzEwIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODY2NDUyMjMzCklociBoYWJ0IGVpbmZhY2ggYWxsZSBrZWluIEhlcnogZnVlciBUaWVyZS4KClRlZGR5LCBzY2htb2xsZW5kIHVuZCBiZWxlaWRpZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogSXN0IGphIHd1ZXN0IGxlZXIgaGllciAoSGFyZGlsLCAyMC4gSnVuIDE5OTcsIDEwOjM0OjAwKToKfiMhIHJuPVRlZGR5IHJ0PTg2Njc5NDY4MyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg2NjQ1MjIzMwoKQWNoIHF1YXRzY2gsIAoKbmF0dWVybGljaCBoYWIgaWNoIGVpbiBIZXJ6IGZ1ZXIgVGllcmUuIERpZSBuZXR0ZW4gVGllcmUgc2luZCBkb2NoIGRpZQp3dW5kZXJiYXJlbiBPcmdhbnNwZW5kZXIgZnVlciBkaWUgV29scGlzLCB1bmQgZGVzd2VnZW4gYWJzb2x1dCB3aWNodGlnLgoKLUhhcmRpbC4KTk5OLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQm9uc2FpIGluIGRlciBXdWVzdGU/IChIYXJkaWwsIDI0LiBKdWwgMTk5NywgMTE6NTQ6NTMpOgoKSG1tbW0sIGVzIHNjaGVpbnQsIGRhIER1cmlhbiBuaWNodCBudXIgbWl0IFRpZXJlbiwgc29uZGVybiBhdWNoIG1pdApCb25zYWktVGllcmVuIGhhbmRlbHQuIEFuZGVycyBrYW5uIGljaCBtaXIgZm9sZ2VuZGVzIG5pY2h0IGVya2xhZXJlbjoKCj4gc2NoYWV0eiBwYXBhZ2VpCkR1IGJpc3QgdmllbCBzdGFlcmtlciBhbHMgRXNraWxzanVuYS4KRGllIFJ1ZXN0dW5nIEVza2lsc2p1bmFzIGlzdCB1bmVyaG9lcnQgdmllbCBiZXNzZXIgYWxzIERlaW5lLgpEaWUgV2FmZmUgRXNraWxzanVuYXMgaXN0IGJlc3NlciBhbHMgRGVpbmUuCkVza2lsc2p1bmEgaXN0IGV0d2EgMWNtIGdyb3NzLgoKMWNtPyBEb2NoIHNvIGdyb3NzPyA6LSkKCi1oYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2guLi5QeXJhbWlkZSAoU211cmYsIDE2LiBPa3QgMTk5NywgMTc6MDc6NTQpOgpXZW5uIG1pciBqZW1hbmQgc2FnZW4gd3VlcmRlLCB3aWUgaWNoIGhhZXR0ZSByYXVzZmluZGVuIGtvZW5uZW4sIGRhc3MgZXMKdG9lZGxpY2ggaXN0LCBpbSBFaW5nYW5nc3JhdW0gZGVyIG5vcmRvZXN0bGljaGVuIFB5cmFtaWRlIG5hY2ggdW50ZW4KenUgZ2VoZW4sIHdhZXJlIGljaCBkYWZ1ZXIgZGFua2Jhci4KCkFuc29uc3RlbiBmYW5kIGljaCBtZWluZW4gZGFkdXJjaCBhdXNnZWxvZXN0ZW4gSW5zdGFudC1Ub2QgZ2VyYWRlCmViZW4gbmFlbWxpY2ggbmljaHQgX3NvXyBkb2xsZSB3aXR6aWcuIDotKAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFid2VydHVuZyAoQmFicywgMTcuIE9rdCAxOTk3LCAwMjo1NDowMyk6Cn4jISBybj1IZXJhIHJ0PTg3NjQ3NzUzOCByZz1lbnR3aWNrbHVuZwp+IyEgdGlkPTg3NjQ3NzUzOApEdSBoYWV0dGVzdCBkZW4gU2FuZHRpZ2VyIHZvcmhlciBuYWNoIFB5cmFtaWRlbiBmcmFnZW4gbXVlc3Nlbi4KQWxsZXJkaW5ncyBtdXNzIG1hbiBpaG4gZHJlaW1hbCBmcmFnZW4sIGJpcyBlciBhbmdlbWVzc2VuIHJlYWdpZXJ0IDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBYndlcnR1bmcgKFNtdXJmLCAxNy4gT2t0IDE5OTcsIDA4OjA4OjI0KToKfiMhIHJuPUJhYnMgcnQ9ODc3MDQ5NjQzIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODc2NDc3NTM4ClNFSFIgd2l0emlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaC4uLlB5cmFtaWRlIChDYXR3ZWF6bGUsIDE3LiBPa3QgMTk5NywgMTA6NTM6MTEpOgp+IyEgcm49U211cmYgcnQ9ODc3MDE0NDc0IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODc3MDE0NDc0CkR1IGhhZXR0ZXN0IGVpbiBBbXVsZXQgZGFiZWkgaGFiZW4gbXVlc3NlbiwgZGFubiB3YWVyc3QgRHUgbmljaHQgZ2VzdG9yYmVuLgpEZXIgSGlud2VpcyBpc3QgYWJlciAobmFjaCBVbWZyYWdlKSByZWxhdGl2IHZlcnN0YWVuZGxpY2ggenUgYmVrb21tZW4uCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2NoLi4uUHlyYW1pZGUgKFNtdXJmLCAxNy4gT2t0IDE5OTcsIDE2OjMxOjQ3KToKfiMhIHJuPUNhdHdlYXpsZSBydD04NzcwNzgzOTEgcmc9ZC53dWVzdGUKfiMhIHRpZD04NzcwMTQ0NzQKS2xhciwgZGVyIGlzdCB6dSBiZWtvbW1lbiwgd2VubiBtYW4gZGllIFF1ZXN0IGRhIGFuZmFlbmd0LCB3byBzaWUgCmxvc2dlaHQsIGFuc3RhdHQgc2ljaCBlaW5mYWNoIHNvIHVtenVzZWhlbi4uLgoKTmFqYSwgd2FzIHNvbGxzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGEgaXMgd2FzIC4uLiAoQXJrLCAyMi4gT2t0IDE5OTcsIDIyOjIwOjA4KToKLi4uIHNhY2h0ZSBpY2ggZ2VyYWRlIG5vY2gsIGFscyBhdXMgZGVtIFNhbmQgLi4uCgpXaXJyLCBpY2ggc2FnZSBuaWNodCBtZWhyLCBudXIgbm9jaCBkaWVzZXM6IGVzIHJlZ3Qgc2ljaCB3YXMgaW4gZGVyIFd1ZXN0ZSAhCgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkViZW4gZ2VyYWRlIGJlaSBtaXIgISAoQXJrLCAyNi4gTWFpIDE5OTgsIDEwOjAyOjA0KToKLi4uCkRlciBWZXJkdXJzdGVuZGUgcm9lY2hlbHQ6IC4uLiB1bmQgZGFubiB0b2V0ZXRlbiBzaWUgbWVpbmVuIEZyZXVuZCAuLi4KJ1dvIHdhciBkYXMgZGVubiA/PwpEdSBzYWdzdDogV28gd2FyIGRhcyBkZW5uID8/CkRlciBWZXJkdXJzdGVuZGUgbXVybWVsdCBpcmdlbmR3YXMgdm9uICdXdWVzdGVucnVpbmUnLgonV28gZ2VuYXUsIHNhZycgc2Nob24sIGJldm9yIER1IHZlcnJlY2tzdCwgRHUgU29obiBlaW5lciByYWV1ZGlnZW4gSHVlbmRpbiAhCkR1IHNhZ3N0OiBXbyBnZW5hdSwgc2FnJyBzY2hvbiwgYmV2b3IgRHUgdmVycmVja3N0LCBEdSBTb2huIGVpbmVyIHJhZXVkaWdlbgpIdWVuZGluICEKRGVyIFZlcmR1cnN0ZW5kZSBicmljaHQgc3RvZWhuZW5kIHp1c2FtbWVuIHVuZCBmYWVsbHQgdG90IHp1IEJvZGVuLgpbVG9kOkxhcnNdIER1cnN0IGhhdCBnZXJhZGUgZWluZW4gdmVyendlaWZlbHRlbiBWZXJkdXJzdGVuZGVuIHVtZ2VicmFjaHQuCi4uLgoKQWxzbywgaWNoIGthbm4gbWlyIGRhIG51ciBiZWdyZW56dCBlaW5lbiBSZWltIGRyYXVmIG1hY2hlbiwgaG9mZmVudGxpY2gKa29lbm5lbiBtaXIgd2FjaydyZSBBYmVudGV1cmVyICh1bmQgQmllcnNjaHVldHRsZXIsIEthcmF0ZWthLCBaYXViZXJlciwKS2F0emVua3JpZWdlciwgS2xlcmlrZXIsIFBpcmF0ZW4sIGV0Yy4pIGJhbGQgbWVociBiZXJpY2h0ZW4uIERvY2ggZXMgc2NoZWludAplaW4gbmljaHQgdW5nZWZhZWhybGljaGVzIFVudGVybmVobWVuIHp1IHNlaW4gLi4uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEViZW4gZ2VyYWRlIGJlaSBtaXIgISAoTW9yZ290aCwgMjYuIE1haSAxOTk4LCAxMDowMzoxNyk6Cn4jISBybj1BcmsgcnQ9ODk2MTY5NzI0IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk2MTY5NzI0CkFlaG0sIGhlaXNzdCBkYXMsIGRpZSBQaXJhdGVuZ2lsZGUgaXN0IG9mZml6aWVsbCBhbmdlc2NobG9zc2VuPwpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFYmVuIGdlcmFkZSBiZWkgbWlyICEgKFByYSwgMjYuIE1haSAxOTk4LCAxMDozMzoxNyk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg5NjE2OTc5NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NjE2OTcyNAp1bmQgd2FzIHNvbGwgZGFzIGJlZGV1dGVuLCBkaWUgQ2hhb3RlbiB1bnRlciAnZXRjLicgenUgc3RlY2tlbj8/PwoKUHJhLiBFbXBvZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRWJlbiBnZXJhZGUgYmVpIG1pciAhIChBcmssIDI2LiBNYWkgMTk5OCwgMTA6Mzk6NTUpOgp+IyEgcm49UHJhIHJ0PTg5NjE3MTU5NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NjE2OTcyNApIdWNoIDotKQpXYXMgZWluIHBhYXIgdmVyZ2Vzc2VuZSBHaWxkZW4gc28gYXVzbWFjaGVuIC4uLgpJY2ggaW5rbHVkaWVyZSBoaWVybWl0IEthZW1wZmVyIHVuZCBDaGFvdGVuIHVuZCBleGtsdWRpZXJlICh2b3JsYWV1ZmlnKQpkaWUgUGlyYXRlbi4gSXMgZGFzIG9rPyAqdW50ZXJ3dWVyZmlnIHZlcmJldWcqClN0cmlja3QgbWlyIGJpdHRlIGtlaW5lbiBTdHJpY2sgYXVzIGRlciBSZWloZW5mb2xnZSBkZXIgQXVmemFlaGx1bmcgOikKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFYmVuIGdlcmFkZSBiZWkgbWlyICEgKFByYSwgMjYuIE1haSAxOTk4LCAxMDo0MTowNyk6Cn4jISBybj1BcmsgcnQ9ODk2MTcxOTk1IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk2MTY5NzI0CkRpciBzZWkgdmVyemllaGVuLiBJY2gga2FubiBlaCBuaWNodCBzdHJpY2tlbiA7LSkKClByYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEViZW4gZ2VyYWRlIGJlaSBtaXIgISAoWmVwaHlyLCAyNi4gTWFpIDE5OTgsIDEwOjQyOjAyKToKfiMhIHJuPVByYSBydD04OTYxNzIwNjcgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTYxNjk3MjQKCkVyIGhhdHRlIGphIGJsb3NzIEFuZ3N0IDopCgoqZ3JpbnNkYWVtb25pc2NoenVhcmtzY2hpZWxlbmQqCiAgICAgICAgICAKICAgICBaZXBoeXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEViZW4gZ2VyYWRlIGJlaSBtaXIgISAoQXJrLCAyNi4gTWFpIDE5OTgsIDEwOjQ0OjA3KToKfiMhIHJuPVplcGh5ciBydD04OTYxNzIxMjIgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTYxNjk3MjQKV292b3I/Cgoqc2NodWVjaHRlcm51bmR1bnNjaHVsZGlnbGFlY2hlbG5kKgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZWRlciBiZWkgbWlyIGdyYWQgbmV1bGljaCBmYXN0IGViZW4hIChBcmssICA5LiBKdW4gMTk5OCwgMTQ6NDY6MTMpOgoKRmV1ZXJ0ZXN0IGZyYWd0OiBEYXMgaXN0IGFsc28gdm9lbGxpZyB1bmdlZmFlaHJsaWNoPwpEdSBzYWdzdDogS2xhciwgb2RlciB3aWVzbyBzb2xsdGUgaWNoIERpY2ggZGEgaGludW50ZXJzY2hpY2tlbj8hCkR1IHNhZ3N0OiBBbiBEZWluZW0gTGViZW4gbGllZ3QgbWlyIHNjaG9uIHdhcyAuLi4KRmV1ZXJ0ZXN0IHNhZ3Q6IEphamEsIGFiZXIgRGVpbiBSdWYgLi4uCkR1IHNhZ3N0IGFlcmdlcmxpY2g6IFdlbGNoZXIgUnVmIHZlcmRhbW10ID8/PyBKZXR6dCBtYWNoIHNjaG9uLgpGZXVlcnRlc3Qgc2FndDogSWNoIHdlaXNzIG5pY2h0IHNvIHJlY2h0LgpzdG9zc2UgRmV1ZXJ0ZXN0CkR1IHN0b2Vzc3QgRmV1ZXJ0ZXN0IGluIGRlbiBCcnVubmVuLgpGZXVlcnRlc3QgcnVmdDogVVVVVVVVQUFBQUFBQUFFRUVFRUVFRWVlZWVlZWVlZWUuLi4uLi4uLiBQbGF0c2NoIQpTdGlsbGUuCltUb2Q6TGFyc10gRGVyIGhhcnRlIEF1ZnNjaGxhZyBoYXQgZ2VyYWRlIEZldWVydGVzdCB1bWdlYnJhY2h0LgpbVG9kOkRlciBoYXJ0ZSBBdWZzY2hsYWddIEhlLCBNb21lbnQsIGRpZXNtYWwgd2FyIGljaCBlcyB3aXJrbGljaCBuaWNodCAhCltUb2Q6TGFyc10gT2ssIGljaCBoYWIncyBnZXNlaGVuLCBtZWluIEZlaGxlciwgZXIgbGVidCBsZWlkZXIgbm9jaC4KW1RvZDpBcmtdIEVyIGhhZXR0ZSBlcyBhbmRlcnMgaGFiZW4ga29lbm5lbiwgYWJlciBudW4gamEsIEdsdWVjayBnZWhhYnQuCkR1IGRlbmtzdDogU2NoYWRlLCBkYXMgbWl0IGRlbiBUb2Rlc2ZhbGxlbiB1bmQgc28sIG5hamEsIHp1bSBTdGVyYmVuIGlzdApEdSBkZW5rc3Q6IG1hbiBuaWUgenUganVuZywgZGFzIHdpcmQgZXIgc2Nob24gc2VoZW4gLi4uCi4uLgpbVG9kOkxhcnNdIEV0d2FzIG5pY2h0IHNvIEdlaGVpbW5pc3ZvbGxlcyB1bmQgYmFsZCBzY2hvbiBCZWthbm50ZXMgaGF0IGdlcmFkZQpbVG9kOkxhcnNdIEZldWVydGVzdCB1bWdlYnJhY2h0LgpbVG9kOkxhcnNdIERpZXNtYWwgd2FyIGVzIHJpY2h0aWcgO15QCgpOYWphLCB6dW1pbmRlc3Qgd2FyIGVzIGF1Y2gga2VpbiBaYXAtTW9uc3RlciwgZGllIHNpbmQgamEgaW0gQXVzc3RlcmJlbgpiZWdyaWZmZW4uIFdhcyBlcyB3YXIsIHdlaXNzIGljaCBhdWNoIG5pY2h0IC4uLgoKSXN0IHdvaGwgbmljaHQgZGVyIFJlZGUgd2VydCwgYWJlciBkYSB3aXJkIGJhbGQgbm9jaCBtZWhyIHp1IHNlaGVuIHNlaW4uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29ja2F0cmljZSAoTW9yZ2FyLCAgOS4gSnVuIDE5OTgsIDE2OjExOjMwKToKTm9ybWFsZXJ3ZWlzZSBzY2hyZWlidCBtYW4gamEgaW4gZGllIE1QQSwgd2VubiBlaW4gTW9uc3RlciBkZXV0bGljaCBoYWVydGVyCmdlbWFjaHQgd3VyZGUuIERhIEFyayBhYmVyIHdvaGwgZGVyIE1laW51bmcgd2FyIGRpZXMgbmljaHQgbm9ldGlnIHp1IGhhYmVuLApob2xlIGljaCBkYXMgamV0enQgZnVlciBpaG4gbmFjaC4gRGllIENvY2thdHJpY2UgemFwdCB3aWVkZXIgdW5kIGVzIGdpYnQKa2VpbmVuIDEwMCVpZ2VuIFNjaHV0eiBtZWhyIGRhdm9yLgpEYW5rZS4KCk1vcmdhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENvY2thdHJpY2UgKFN0aW5nLCAgOS4gSnVuIDE5OTgsIDE5OjA4OjI5KToKfiMhIHJuPU1vcmdhciBydD04OTc0MDE0OTAgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTc0MDE0OTAKV2VyIGhhdCBnZXNhZ3QsIGRhcyBzaWUgamVtYWxzIF9OSUNIVF8gbWVociBnZXphcHB0IGhhdCA/IGRpZSB3YXJudW5nZW4gaW4gZGVyCm1wYSB3YXJlbiB3b2hsIGVpbmRldXRpZyBnZW51ZywgdW5kIGVpbmVuIHNjaHV0eiBtdXNzIGVzIGphIG5pY2h0IF91bmJlZGluZ3RfCmdlYmVuIChkYXMgbGllZ3QgaW0gZXJtZXNzZW4gZGVzIG1hZ2llcnMpIGF1Y2ggd2VubiBlcyBtaXIgcGVyc29lbmxpY2ggYXVjaApiZXNzZXIgZ2VmYWxsZW4gd3VlcmRlLi4uIGFiZXIgd2VubiBkdSB1bmJlZGluZ3QgZGllc2VuIGtpbGwgaGFiZW4gd2lsbHN0LApkYW5uIG11c3N0IGR1IGViZW4gd2FzIHJpc2tpZXJlbi4uLgpVbmQgdW0gZXMgbWl0IEFuYXRvbHMgV29ydGVuIHp1IHNhZ2VuOiBIRVVMIERPQ0ggOikpKQoKU3RpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDb2NrYXRyaWNlIChQYXRyeW4sICA5LiBKdW4gMTk5OCwgMTk6MTk6NDUpOgp+IyEgcm49TW9yZ2FyIHJ0PTg5NzQwMTQ5MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MAphbHNvIGRlciBoYXQgbmllIGF1ZmdlaG9lcnQgenUgemFwcGVuLCBhYmVyIGVzIGdpYnQgbnVubWVociBlaW5lbiBzY2h1dHoKZGF2b3IuLi5hYmVyIG9iIGRlciBlaW5kZXV0aWcgenUgZXJrZW5uZW4gaXN0LCB3ZWlzcyBpY2ggbmljaHQsIGhhdHRlIGVzCmFyayBlaWdlbnRsaWNoIHZvcmdlc2NobGFnZW4sIGRlbiB0aXAgZWluZGV1dGlnIGluIGRlbiBkZXRhaWxzIGVpbnp1ZmFzc2VuLgplaHJsaWNoIGdlc2FndCBoYWx0IGljaCBhdWNoIG5pY2h0IHZpZWwgdm9uIGRlciB6YXBwZXJlaSwgYXVjaCB3ZW5uIG1pcgpkYXMgamV0enQga2VpbmVyIGdsYXVidCA7KQoKLS0tLS0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDb2NrYXRyaWNlIChQYWRyZWljLCAgOS4gSnVuIDE5OTgsIDE5OjIzOjIxKToKfiMhIHJuPVBhdHJ5biBydD04OTc0MTI3ODUgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTc0MDE0OTAKTG9lc2NodCBzb2ZvcnQgUGF0cnluISEhIQpBbHNvIHdlbm4gZGFzIGtlaW4gZWluZGV1dGlnZXIgQmV3ZWlzIGZ1ZXIgZWluIGdla2xhdXRlcyBQYXNzd29ydCBpc3QsIGRhbm4Kd2Vpc3MgaWNoIGF1Y2ggbmljaHQgbWVoci4uLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFkcmVpYwoKZ3JpbW1ib3JuIC0+IHNjaG1hcnJuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENvY2thdHJpY2UgKEtleSwgIDkuIEp1biAxOTk4LCAyMDoxNzoxOSk6Cn4jISBybj1QYXRyeW4gcnQ9ODk3NDEyNzg1IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwCkljaCBnbGF1YiBkaXIgbmljaHQgOikKCktleQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDb2NrYXRyaWNlIChBcmssICA5LiBKdW4gMTk5OCwgMjA6Mzc6NTQpOgp+IyEgcm49UGF0cnluIHJ0PTg5NzQxMjc4NSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MAoqU2V1ZnoqCgpJY2ggaGF0dGUgdW5kIGhhYmUgbmljaHQgdm9yLCBkaWUgQ29ja2F0cmljZSB6dSBhZW5kZXJuLiBJY2ggaGFiZSB2b3IsIGVpbmVuClNjaHV0eiBkYXZvciBlaW56dWJhdWVuLiBJY2ggaGFiZSBzaWUgZW50c2NoYWVyZnQsIHNvIGRhc3MgbWFuIHNpY2ggc2Nob24KamV0enQgc2NodWV0emVuIGthbm4uCkljaCBoYWJlIGRldXRsaWNoZSBIaW53ZWlzZSBpbiBkZXIgQ29ja2F0cmljZSBoaW50ZXJsYXNzZW4sIHNvIGRhc3Mga2VpbmVyLApkZXIKc2llIGdlbmF1IHVudGVyc3VjaHQsIHVlYmVycmFzY2h0IHNlaW4ga2Fubi4gRXMgaXN0IG1laW4gZWluemlnZXMKJ1phcG1vbnN0ZXInLAp1bmQgd2lyZCBlcyBhdWNoIGJsZWliZW4sIHdpZSB2ZXJzcHJvY2hlbi4gVmVyc3RlaW5lcm4gaXN0IGhhbHQgaGllciBpcmdlbmR3aWUKbmljaHQKenUgcmVhbGlzaWVyZW4sIHNvIGRhc3Mgc2ljaCBrZWluZXIgYXVmIGRlbiBTY2hsaXBzIGdldHJldGVuIGZ1ZWhsdCwgYXVjaAptaXQgU2NodXR6LiBBbHNvLCB3YXMgZGVuIGFic29sdXRlbiBTY2h1dHogYmV0cmlmZnQ6IEdlZHVsZC4KCklzdCBkYXMgamV0enQga2xhcmVyID8gV2VubiBpY2ggZGllIENvY2thdHJpY2Ugbm9jaCBzY2h3YWVjaGVyIG1hY2hlLCBrYW5uIGljaApkaWUgQmVsb2hudW5nZW4KZ2xlaWNoIG1pdCBlbnRzb3JnZW4sIHdlciBhbHNvIGRlciBNZWludW5nIGlzdCwgZGFzIEdlYmlldCBib3lrb3R0aWVyZW4KenUgbXVlc3NlbiwgZGVyIG1hZyBlcyB0dW4uIE1hbiBtdXNzIHNpZSBqYSBuaWNodCB1bWhhdW4sIGlzdCBqYSBuaWNodApBdXRvQXR0YWNrLgoKKlNldWZ6IG5vY2htYWwqCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQ29ja2F0cmljZSAoS2V5LCAxMC4gSnVuIDE5OTgsIDA4OjMwOjAwKToKfiMhIHJuPUFyayBydD04OTc0MTc0NzQgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTc0MDE0OTAKSHVodSBBcmsgLikKCkFlaCAuLi4gYWxzbyBpY2ggZ2xhdWJlIGljaCBoYWIgRGlyIHNjaG9ubWFsIGVyemFlaGx0IGRhcyB2ZXJzdGVpbmVybgpyZWFsaXNpZXJiYXIgaXN0IC4uLiB1bmQgYXVjaCBlaWdlbnRsaWNoIGtlaW4gc29ncm9zc2VzIFByb2IuClVuZCBhdWNoIG5vY2ggc28gZGFzIGRpZSBTcGllbGVyIHNpY2ggbmV0IGFsenVhcmcgYmVzY2h3ZXJlbiAuLi4uIAoKQmVpIEZyYWdlbiAuLi4gZnJhZyBtaWNoIDspCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IENvY2thdHJpY2UgKFphcm5peWEsIDEwLiBKdW4gMTk5OCwgMTA6MzY6MTYpOgp+IyEgcm49S2V5IHJ0PTg5NzQ2MDIwMCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApLRVksIGljaCBmaW5kZSBlcyBlaW5lIFVudmVyc2NoYWVtdGhlaXQsIGRhc3MgRHUgaGllciB2b24gZWluZW0gTWFnaWVyCmdydW5kbGVnZW5kc3RlIEtlbm50bmlzc2UgaW4gTFBDIHZlcmxhbmdzdCB1bmQgd2VubiBlciBkaWUgbmljaHQgaGF0LCBkYW5uCmF1Y2ggbm9jaCB3aWxsc3QsIGRhc3MgZXIgZWluZW4gX1NwaWVsZXJfIGRhbmFjaCBmcmFndCEgU2F1ZXJlaSBzb3dhcy4uLiB3bwprb21tZW4gd2lyIGRhIGhpbiEKClphcm5peWEgZXJpbm5lcnQgc2ljaCwgZGFzcyBtYWwgenVtIE1hZ2llcndlcmRlbiBlaW4gUHJvZ2d0ZXN0IGltIEdlc3ByYWVjaAp3YXIgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBDb2NrYXRyaWNlIChIYXJkaWwsIDEwLiBKdW4gMTk5OCwgMTA6NDA6NTEpOgp+IyEgcm49S2V5IHJ0PTg5NzQ2MDIwMCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApWZXJzdGVpbmVybj8KR2FyIGtlaW4gUHJvYmxlbS4gVmVybGFuZ3NhbWUgZGVuIFNwaWVsZXIgZWluZmFjaC4KR2liIGlobSBlcnN0IG51ciBub2NoIGRpZSBIYWVsZnRlIHNlaW5lciBBdHRhY2tlbiwgZGFubiBuYWNoIHp3ZWkgTWludXRlbiBudXIKbm9jaCBlaW4gRHJpdHRlbCwgbmFjaCB3ZWl0ZXJlbiB6d2VpIE1pbnV0ZW4gbnVyIG5vY2ggZWluIFZpZXJ0ZWwsIHVzdy4gCkRhbm4gZmlsdGVyZSBlaW5mYWNoIGltbWVyIG1laHIgQmVmZWhsZSBkZXMgU3BpZWxlcnMgaGVyYXVzIHVuZCBiZWFudHdvcnRlIHNpZQptaXQgIkRlaW5lIEdsaWVkbWFzc2VuIGdlaG9yY2hlbiBEaXIgbmljaHQgbWVociIuLi4KCi4uLiB1bmQgRHUgd2lyc3QgZ2FueiBzY2huZWxsIG5vY2ggbWVociBGcmV1bmRlIHVudGVyIGRlbiBIaWdoLUxldmVsLVd1ZXJzdGVuCmhhYmVuLiA6KQoKLUhhcmRpbC4gTmV0aGFjay1TcGllbGVyLiBIYXQgaW1tZXIgZWluZW4gU2Nyb2xsIG9mIEdlbm9jaWRlIGZ1ZXIgQ29ja2F0cmljZXMKdWViZXIuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogQ29ja2F0cmljZSAoRW5kZXIsIDEwLiBKdW4gMTk5OCwgMTI6MjU6MzEpOgp+IyEgcm49SGFyZGlsIHJ0PTg5NzQ2ODA1MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApTbyBudW4gaGFidCBpaHIgZ2VudWcgV2VyYnVuZyBmdWVyIEFyayBnZW1hY2h0LCBpbnp3aXNjaGVuIG11c3MgZG9jaCBqZWRlcgphdWZtZXJrc2FtIGdld29yZGVuIHNlaW4KOikgLT4gU2NobWFycm4KZW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IENvY2thdHJpY2UgKEFyaywgMTAuIEp1biAxOTk4LCAxMjoyNTo0OSk6Cn4jISBybj1LZXkgcnQ9ODk3NDYwMjAwIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwClZlcnN0ZWluZXJuIGtlaW4gUHJvYmxlbT8gSWNoIHdlaXNzLCBpY2ggaGF0dGUgbm9jaCBlaW4gcGFhcgphbmRlcmUgSWRlZW4genVyIFJlYWxpc2F0aW9uLCBOaXhpaG91IGhhdCBzaWUgbWlyIGF1Y2ggdm9yZ2VzY2hsYWdlbgpwZXIgTWFpbCwgZGllIGRlY2tlbiBzaWNoIHp1IGVpbmVtIEd1dHRlaWwgbWl0IG1laW5lbiwgZGllIGljaCBtYWwKaGF0dGUuIE5hamEsIGFsbGUgaGF0dGVuIGV0d2FzIFVuYmVmcmllZGlnZW5kZXMgYW4gc2ljaCwgdW5kIHNvIGhhYmUKaWNoIHNpZSBlYmVuIHdpZWRlciB2ZXJ3b3JmZW4uIEljaCB3b2xsdGUgaGFsdCBkYXMgVmVyc3RlaW5lcm4gbmljaHQKc28gJ2F1ZndlaWNoZW4nLCBkYXNzIEhpZ2gtTGV2ZWwtUGxheWVyIGRhcnVlYmVyIGxhY2hlbiwgc29uZGVybiBhdWNoCmZ1ZXIgc2llIG5vY2ggZWluIGVybnN0ZXMgUmlzaWtvIGJsZWlidC4gRGEgdmllbGUgZGllc2VzIFJpc2lrbyBuaWNodApnZXJhZGUgZWluZ2VoZW4gd29sbGVuICh3aWUgaWNoIGRlbSBHZXNjaHJlaSBlbnRuZWhtZW4ga2FubiksIGxhc3MgaWNoCmRhcyBpbiBadWt1bmZ0IGFsc28gZ2FueiAtIGJpcyBtaXIgZG9jaCBub2NoIHdhcyBBbm5laG1iYXJlcyBlaW5mYWVsbHQuClZvcnNjaGxhZWdlIHNpbmQgd2lsbGtvbW1lbi4gQXVzIGRlbSBnbGVpY2hlbiBHcnVuZCB3ZXJkZSBpY2ggYXVjaAptZWluZSBQZm90ZW4gdm9uIFRvZGVzcml0dGVybiB1bmQgYWVobmxpY2hlbiBVbnRvdGVuIGxhc3NlbiAqc2V1ZnoqLApkZW4gZWluIFdvcnQgZGVzIFRvZGVzLCBkYXMgZWluZW4gbWl0IGVpbmVtIEFtdWxldHQgZ2VzY2h1ZXR6dGVuIFBDCm51ciAnYW0gQmF1Y2gga2l0emVsdCcsIGlzIG1pciBlaHJsaWNoIGdlc2FndCwgenUgZG9vZi4gRGFubiBzY2hvbgpsaWViZXIgZGVuIGd1dGVuIGFsdGVuIFJldHR1bmdzd3VyZiB1bmQgJ2hvcHAgb2RlciB0b3BwJy4gTnVuIGd1dCAuLi4KCldpdHppZ2VzIGlzdCBtaXIgbmV1bGljaCBwYXNzaWVydCwgbWl0IG1laW5lbSBad2VpdGkgaW4gZGVyIFVudGVyd2VsdC4KSWNoIHdvbGx0ZSBmb3JzY2hlbmQgZHVyY2ggZGllIExhbmRlIHppZWhlbiwgbGFuZGUgaW4gZWluZXIgdW50ZXJpci0KZGlzY2hlbiBTdGFkdC4gRG9ydCBzdGVoZW4gZWluaWdlIFdhcm51bmdlbiBoZXJ1bSwgYWJlciBzb25zdCBpc3QgZXMKemllbWxpY2ggb2VkZSBkb3J0LiBOYWphLCBkYSBpY2ggbmljaHQgZ2VyYWRlIHNjaHdhY2ggb2RlciBzbyBiaW4sCnRyYXVlIGljaCBtaWNoIGR1cmNoIHNvIGVpbiBUb3IgdW5kIGxvcyBnZWh0czoKRXJzdGVyIFJhdW0sIE9ya3MsIGRpZSBlaW5lbiBuaWVkZXJrbG9wcGVuIHdvbGxlbi4gSGF0dGUgaWNoIGtlaW5lCkx1c3QgZHJhdWYgdW5kIHdpbGwgenVydWVjay4gR2VodCBuaWNodC4gSWNoIGdlaGUgd2VpdGVyLCBodWksCnN0YWVya2VyZSBPcmtzLCBkaWUgbWlyIHNjaG9uIG1laHIgYXVmIGRlbiBLZWtzIGdlaGVuIHVuZCBtaWNoCmViZW5mYWxscyBuaWNodCB6dXJ1ZWNrbGFzc2VuLCB3b2hsIGFiZXIgd2VpdGVyIHp1IG5vY2ggc3RhZXJrZXJlbgpSaWVzZW5vcmtzIHVuZCBNYWdpZXJuIC4uLiBOYWphLCBkYXMgbmVubiBpY2ggbWFsIG5lIFRvZGVzZmFsbGUgOi0pClJlZ3Qgc2ljaCBkYSBqZW1hbmQgZHJ1ZWJlciBhdWY/IEljaCBuZXQsIGlzIGhhbHQgR2VzY2htYWNrc3NhY2hlLgpBdWYgamVkZW4gRmFsbCBmb3JkZXJlIGljaCBkb2NoIG5pY2h0IGFscyBMZXZlbC02eC1QbGF5ZXIgdW5kIGhvZWhlciwKZGFzcyBtYW4gZGFzIGVudHNjaGFlcmZlbiBzb2xsdGUsIHdlbm4gZXMgbWlyIG5pY2h0IGdlZmFlbGx0LCBkYW5uCmJsZWliZSBpY2ggaGFsdCBkYXZvbiB3ZWcgKG1hY2ggaWNoIGF1Y2ggc28gOi0pKSwgaXJnZW5kd2FubiBhZW5kZXJ0CmRlciBiZXRyZWZmZW5kZSBNYWcgaGFsdCB3YXMgb2RlciBuaWNodC4KRGFzIHdhciBqZXR6dCBub2NoIG1hbCBlaW4gbGFlbmdlcmVyIEFydGlrZWwgKGlociBzZWh0LCBtaWNoIGt1ZW1tZXJ0CmVzIHNjaG9uIGlyZ2VuZHdpZSwgd2FzIGlociBkYXJ1ZWJlciBkZW5rdCkgdW5kIGpldHp0IHdlbmRlIGljaCBtaWNoCk5ldWVtLCBGcmllZGxpY2hlcmVtICgqbmFqYSopIHp1IDotKQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IENvY2thdHJpY2UgKEtleSwgMTAuIEp1biAxOTk4LCAxMjozMDowOSk6Cn4jISBybj1aYXJuaXlhIHJ0PTg5NzQ2Nzc3NiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApaYXJuaXlhIGVzIHd1cmRlIG5vY2ggbmllIHZlcmxhbmd0IGRhcyBtYW4gaW1tZXIgZ2xlaWNoIGF1ZiBkaWUgYmVzdGUgTG9lc3VuZwprb21tdCwgdW5kIGltbWVyIGFsbGVzIHd1c3N0ZS4KRHUgd2Fyc3QgYXVjaCBuZXQgcGVyZmVrdCBtb2VjaHRlIGljaCBiZWhhdXB0ZW4gKEltIEJlenVnIGF1ZiBwcm9nZ2VuIC4uLiApCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IENvY2thdHJpY2UgKEFyaywgMTAuIEp1biAxOTk4LCAxMjozNjozMyk6Cn4jISBybj1LZXkgcnQ9ODk3NDc0NjA5IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwCldlciBpc3Qgc2Nob24gcGVyZmVrdD8gOi0pCkljaCBoYWJlIGdlcmFkZSBMZXZlbCAyIGVycmVpY2h0ICgxMiUpLgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IENvY2thdHJpY2UgKE1vcmdhciwgMTAuIEp1biAxOTk4LCAxMjozNjo0MSk6Cn4jISBybj1LZXkgcnQ9ODk3NDc0NjA5IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwCkFsc28sIHVtIG5vY2ggZWluIG1hbCB6dSB2ZXJkZXV0bGljaGVuLCB3YXMgaWNoIGVpZ2VudGxpY2ggZ2VzYWd0IGhhYmU6CkRpZSBDb2NrYXRyaWNlIHd1cmRlIGRlZmluaXRpdiBvaG5lIFZvcndhcm51bmcgc28gdmVyYWVuZGVydCwgZGFzcyBtYW4gc2ljaApuaWNodCBtZWhyIGF1ZiBkaWUgR2xlaWNoZSBBcnQgdm9yIGRlbSBkaWUoKSBzY2h1ZXR6ZW4ga29ubnRlLCB3aWUgenV2b3IuIEljaApoYWJlIGVpbmVuIE1hZ2llciBnZWJldGVuLCBzaWNoIGRlbiBDb2RlIG5vY2ggbWFsIGFuenVzZWhlbiB1bmQgZXIgaGF0IGVzCmJlc3RhZXRpZy4gRGVuIEtpbGwgaGFiIGljaCB1ZWJyaWdlbnMgc2Nob24gbGFuZ2UuCgpbVEVBTTpUb2QgZGVtIGRpZSgpXSBNb3JnYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IENvY2thdHJpY2UgKE1vcmdvdGgsIDEwLiBKdW4gMTk5OCwgMTI6NTY6NTQpOgp+IyEgcm49QXJrIHJ0PTg5NzQ3NDM0OSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MAphcmdsLiBsb2hudCBzaWNoIGhpZXIgYmFsZCBlaW4gaWdub3JpZXJlIGFyay5uZXdzPz8/IGlzdCBqZXR6dCBiYWxkIHNjaGx1c3M/Ck0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBDb2NrYXRyaWNlIChHbG9pbnNvbiwgMTAuIEp1biAxOTk4LCAxNDo1NjoxNik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg5NzQ3NjIxNCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApJY2ggZ2xhdWJlLCBlaW4gaWdub3JpZXJlIGphbW1lcmxhcHBlbi5uZXdzIGVoZXIgOy0pCgpHbG9pbiAuLi4gZmluZGV0ICdiZXdhcm50ZScgVG9kZXNmYWxsZW4gc2Nob24gT0suIERhenUgaGF0IG1hbiBkYW5uIGViZW4KZG9jaCBad2VpdGllcywgYXVjaCB3ZW5uIGVzIGRlbiBNYWdpZXJuIG5pY2h0IHBhc3N0IDotUAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogQ29ja2F0cmljZSAoV3VyLCAxMC4gSnVuIDE5OTgsIDE3OjA0OjUyKToKfiMhIHJuPUhhcmRpbCBydD04OTc0NjgwNTEgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTc0MDE0OTAKVWksIGR1IHZlcndlbmRlc3QgZGllc2Ugd2VydHZvbGxlbiBTY3JvbGxzIG9mIEdlbm9jaWRlIGZ1ZXIgZGllc2UKaGlsZnNiZWR1ZXJmdGlnZW4gQ29ja2F0cmljZT8KCld1ciwgdmVyd3VuZGVydAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogQ29ja2F0cmljZSAoRHJvZ28sIDEwLiBKdW4gMTk5OCwgMTc6MDg6MjYpOgp+IyEgcm49V3VyIHJ0PTg5NzQ5MTA5MiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApTY2hvbiBtYWwgbWl0IEF1Z2VuYmluZGUgdW5kIFNwaWVnZWwgdmVyc3VjaHQgPz8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBDb2NrYXRyaWNlIChUYXJpbmEsIDEwLiBKdW4gMTk5OCwgMTg6MTY6MDgpOgp+IyEgcm49V3VyIHJ0PTg5NzQ5MTA5MiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApkYSBnYWJzIGRvY2ggc28gbmV0dGUga2xlaW5lIGwncyBvZGVyIHNvLi4uIGF1ZiBkaWUgY29ja2F0cmljZW4gZW1wZmluZGxpY2gKcmVhZ2llcnRlbi4uLgotPiBzY2htYXJybi4KVGFyaW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBDb2NrYXRyaWNlIChUYXJpbmEsIDEwLiBKdW4gMTk5OCwgMTg6MTY6NTEpOgp+IyEgcm49RHJvZ28gcnQ9ODk3NDkxMzA2IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwCmR1IHZlcndlY2hzZWxzdCBkaWUgY29ja2FjdHJpY2UgbWl0IGVpbmVyIG1lZHVzYS4KVGFyaW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBDb2NrYXRyaWNlIChQYXRyeW4sIDEwLiBKdW4gMTk5OCwgMjA6MTg6MzQpOgp+IyEgcm49R2xvaW5zb24gcnQ9ODk3NDgzMzc2IHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwCmFscyBtYWdpZXIgaXN0IGVzIG1pciB2b2VsbGlnIHd1cnNjaHQsIG9iIGR1IG1pdCAxMCBjaGFyYWt0ZXJlbiBkdXJjaApkaWUgZ2VnZW5kIHJlbm5zdCB1bSBkZWluZW4gd2VydHZvbGxlbiAoPykgaGF1cHRjaGFyYWt0ZXIgenUgc2NodWV0emVuLgphbHMgc3BpZWxlciBqZWRvY2ggYmluIGljaCBzdHJpayBkYWdlZ2VuLCB6dSBzbyBldHdhcyBnZXp3dW5nZW4genUgd2VyZGVuLgppbSBnZWdlbnNhdHogenUgZGlyIGZpbmRlIGljaCBlcyBuYWVtbGljaCBuaWNodCBzZWhyIGFuc3ByZWNoZW5kLCBtZWhyCmFscyBlaW5lbiBjaGFyYWt0ZXIgenVyIHNlbGJlbiB6ZWl0IGltIHNwaWVsIHp1IGhhYmVuLgoKLS0tLS0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQ29ja2F0cmljZSAoVGVkZHksIDEwLiBKdW4gMTk5OCwgMjA6MjM6MzYpOgp+IyEgcm49S2V5IHJ0PTg5NzQ2MDIwMCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApVbSBnZW5hdSB6dSBzZWluLCBnaWJ0IGVzIHZlcnN0ZWluZXJuIHNjaG9uIGltIE1HLgoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IENvY2thdHJpY2UgKEdsb2luc29uLCAxMC4gSnVuIDE5OTgsIDIwOjM5OjIzKToKfiMhIHJuPVBhdHJ5biBydD04OTc1MDI3MTQgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTc0MDE0OTAKV2VyIHp3aW5ndCBkaWNoIGRlbm4/IEljaCBzZWggZGFzIG1laHIgc28sIGRhcyBHbG9pbiBHbG9pbnNvbiByYW5wZmVpZnQgdW5kCnp1IGlobSBzYWd0OiAnSGV5LCBpY2ggaGFiIGhpZXIgd2FzIFNwYW5uZW5kZXMgZW50ZGVja3QsIHZlcnN1Y2ggZGFzIGRvY2gKKGF1Y2gpIG1hbCwgdmllbGxlaWNodCBnaWJ0IGRhcyAnbmUgQmVsb2hudW5nJy4gTm9qYS4uLgpTY2hpem9waHJlbmllIGlzdCBkaWUgR3J1bmRsYWdlIGVpbmVzIGFremVwdGFibGVuIFJvbGxlbnNwaWVscyA6KSkpCgpHbG9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogQ29ja2F0cmljZSAoU29uZ29rdSwgMTIuIEp1biAxOTk4LCAxMToxMToxMyk6Cn4jISBybj1UYXJpbmEgcnQ9ODk3NDk1NDExIHJnPWQud3Vlc3RlCn4jISB0aWQ9ODk3NDAxNDkwCmFiZXIgZGFmdWVyIGthbm4gbWFuIHNvIGVpbiBWaWVoIG1pdCB2ZXJud2FmZmVuIGx1ZW5jaGVuIHVuZCBkYW5uIG1pdApoYW5kc2NodWhlbiBhbmZhc3NlbiAoYWxzIHdhZmZlIGJlc3NlciBhbHMgZGFzIGNyeXNrbmlmZSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IENvY2thdHJpY2UgKFd1ciwgMTIuIEp1biAxOTk4LCAyMzo1MzozNSk6Cn4jISBybj1Tb25nb2t1IHJ0PTg5NzY0MjY3MyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTg5NzQwMTQ5MApVbmQgYmVpbSBhdWZoZWJlbiBkZXIgTGVpY2hlIHNlaHIgYmVkYWNodCBzZWluIG5pY2h0IG1pdCBmYWxzY2hlbSBTY2h1aHdlcmsKZGllIExlaWNoZSB6dSBiZXJ1ZWhyZW4uLi4KCld1cgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQ29ja2F0cmljZSAoTHVnLCAyMS4gSnVuIDE5OTgsIDA1OjI4OjQ3KToKfiMhIHJuPUFyayBydD04OTc0MTc0NzQgcmc9ZC53dWVzdGUKfiMhIHRpZD04OTc0MDE0OTAKSWNoIGxlcyBlcyBqYSBqZXR6dCBlcnN0OgoKRGFua2UgQXJrLCBkYXMgaWNoIERlaW4gR2ViaWV0IGlnbm9yaWVyZW4gZGFyZi4gTWFjaCBpY2ggZG9jaCBnZXJuLgoKRmlkS0cKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoLCBiZWkgbWlyIC4uLiAoQXJrLCAyOC4gT2t0IDE5OTgsIDIxOjI4OjAzKToKCkZhY2hpZGggaWJuIERydXpoIGVyc2NoZWludC4KRHUgc2Fnc3Q6IEhhbGxvLCBhbHRlciBGcmV1bmQuCkZhY2hpZGggZ3J1ZXNzdCBEaWNoLgpEdSB1bWFybXN0IEZhY2hpZGguCkZhY2hpZGggc2FndDogSWNoIGhhYmUgZWluIFByb2JsZW0sIEFyayAuLi4KRHUgc2Fnc3Q6IExldXRlIHdlbmRlbiBzaWNoIG9mdCBhbiBtaWNoIG1pdCBpaHJlbiBQcm9ibGVtZW4uCkZhY2hpZGggZXJyb2V0ZXQuCkR1IGJlcnVoaWdzdCBGYWNoaWRoLgpEdSBzYWdzdDogUmVkZSBudXIuCkZhY2hpZGggbmlja3QgZXJsZWljaHRlcnQuCkZhY2hpZGggZXJ6YWVobHQ6Ck1laW5lIFN0dWRpZW4gd2VyZGVuIGltbWVyIGtvbXBsZXhlciB1bmQgdW1mYW5ncmVpY2hlciwgemVpdGF1ZndlbmRpZ2VyLgpPZnQga2FubiBpY2ggbmFlY2h0ZWxhbmcgbmljaHQgc2NobGFmZW4uIEFyaywgaWNoIGJyYXVjaGUgZHJpbmdlbmQgZWluCmJpc3NjaGVuIEhpbGZlLCBkZW5uIGljaCBoYWx0ZSBkYXMgbmljaHQgbGFlbmdlciBkdXJjaC4gRXMgZ2VodCBudXIgdW0KZWluIHBhYXIgQXVmZ2FiZW4sIGRpZSBpY2ggbm9jaCBoYWJlLCBkb2NoIGljaCB3aWxsIG5pY2h0IHNlbGJzdCB3aXJyCmluIHVuc2VyZW0gVHVybSBoZXJ1bXJlbm5lbi4KRmFjaGlkaCBzZXVmenQuCkR1IGdydWViZWxzdCBhbmdlc3RyZW5ndC4KRHUgc2Fnc3Q6IEljaCBnbGF1YmUsIGljaCB3ZWlzcywgd2llIHdpciBkaWVzZXMgUHJvYmxlbSBsb2VzZW4ga29lbm5lbi4KRmFjaGlkaCBibGlja3QgaG9mZm51bmdzdm9sbCBhdWYgRGljaC4KRHUgc2Fnc3Q6IEljaCBoYWJlIEtvbnRha3QgenUgZWluZXIgd2FocmVuIEFybWVlIHZvbiBoaWxmcmVpY2hlbiBLcmFlZnRlbiwKRHUgc2Fnc3Q6IG51ciB3aXNzZW4gZGllc2Ugbm9jaCBuaWNodCwgZGFzcyBzaWUgRGlyIGhlbGZlbiBzb2xsZW4uCkR1IHNhZ3N0OiBEb2NoIHdpciBnZWhlbiBtaXQgTGlzdCB1bmQgQ2xldmVybmVzcyB2b3IuIFdpciB0YXJuZW4gZGllCkR1IHNhZ3N0OiBnYW56ZSBPcGVyYXRpb24gYWxzIGVpbmUgc29nZW5hbm50ZSAnUXVlc3QnLCBsYXNzZW4gZGFzIEdhbnplCkR1IHNhZ3N0OiB2b24gZWluZW0gbWl0IG1pciBiZWZyZXVuZGV0ZW4gTWFnaWVyIGFic2VnbmVuIHVuZCBtaXQgZWluIHBhYXIKRHUgc2Fnc3Q6IEFiZW50ZXVlcnB1bmt0ZW4gYWxzIGJpbGxpZ2UgQmVsb2hudW5nIGdhcm5pZXJlbiB1bmQgdm9pbGE6CkR1IHNhZ3N0OiBEdSB3aXJzdCBEaWNoIHZvciBIaWxmZSBnYXIgbmljaHQgcmV0dGVuIGtvZW5uZW4uCkZhY2hpZGggc3RhdW50LgpGYWNoaWRoIHNhZ3Q6IERhcyBoZWlzc3QgamEgLi4uCkR1IHNhZ3N0OiBHZW5hdSwgZGFzIHdpcmQgZGFubiBlaW4gU2VsYnN0bGFldWZlci4gVmllbGxlaWNodCBzcGVuZGllcnN0CkR1IHNhZ3N0OiBEdSBub2NoIGVpbmUgS2xlaW5pZ2tlaXQsIGRhbWl0IHdlbmlnc3RlbnMgbm9jaCBlaW5pZ2VybWFzc2VuCkR1IHNhZ3N0OiB1bmVyZmFocmVuZSBBYmVudGV1cmVyIGF1ZiBpaHJlIEtvc3RlbiBrb21tZW4uCkZhY2hpZGggbmlja3QgZWlmcmlnLgpGYWNoaWRoIHNhZ3Q6IERhIGZhZWxsdCBtaXIgYXVjaCBzY2hvbiB3YXMgZWluLgpGYWNoaWRoIGh1ZXBmdCB1bSBEaWNoIGhlcnVtLgpEdSBzYWdzdDogV29ob29vLCBzY2hvbiBndXQuIEFsc28sIGljaCB3ZXJkZSBtaXIgbm9jaCBuZW4ga3VyemVuIFRleHQKRHUgc2Fnc3Q6IGZ1ZXIgbWVpbmVuIGFsdGVuIEt1bXBlbCwgZGVuIFdhbmRlcmVyLCBhdXNkZW5rZW4sIGRlciB3aXJkIGRpZQpEdSBzYWdzdDogTWFzc2VuIGRhbm4gZGlyZWt0IHp1IERpciBsZWl0ZW4uCkZhY2hpZGggc3R1dHp0LgpGYWNoaWRoIHNhZ3Q6IFdhcyBpc3QgbWl0IGRlbiBHZWZhaC4uLgpEdSBydWZzdDogRXMgZ2lidCBkb3J0IGtlaW5lIEdlZmFocmVuLCBzcHJpY2ggYmxvc3MgbmljaHQgZGF2b24sIHNvbnN0CkR1IHJ1ZnN0OiBiZWtvbW1lIGljaCB3aWVkZXIgZGVuIGdhbnplbiBNaXN0IHp1IGhvZXJlbiB2b24gd2VnZW4gJ2RpZScKRHUgcnVmc3Q6IHVuZCBOYWlyb2xmIG1hY2h0IG1pY2ggd2llZGVyIGluIGRlciBNUEEgZmVydGlnIHVuZCAuLi4KRHUgc2NobHVjaHp0LgpGYWNoaWRoIHRyb2VzdGV0IERpY2guCkZhY2hpZGggc2FndDogTmEsIGRhbm4gc29sbHRlIGljaCBhdWNoIGJlc3NlciBuaWNodHMgdm9uIGRlbiBLYXRha29tLi4uCkR1IHVudGVyYnJpY2hzdCBGYWNoaWRoLgpEdSBzYWdzdDogTkVJTiwgZGFzIHNvbGx0ZXN0IER1IG5pY2h0IQpEdSBzYWdzdDogT2ssIGljaCB2ZXJhbmxhc3NlIGRhcyBHYW56ZSBqZXR6dCwgdW5kIHZlcmdpc3MnIG5pY2h0OiBQc3NzdC4KRmFjaGlkaCBuaWNrdC4KRmFjaGlkaCB3aW5rdC4KRHUgd2lua3N0LgpGYWNoaWRoIGdlaHQgbmFjaCBIYXVzZS4KRHUgd2lzY2hzdCBEaXIgZGVuIFNjaHdlaXNzIHZvbiBkZXIgU3Rpcm4uCgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1lcmNpIChBcmssIDI4LiBPa3QgMTk5OCwgMjE6Mjg6MjgpOgoKU28sIGpldHp0IGlzc2UgYWxzbyBhdWNoIGZlcnRpZywgbWVpbmUgendlaXRlIFF1ZXN0LiBXaWUKdmVyc3Byb2NoZW4sIG1pdCBkZW0gV29lcnRsZWluICdkaWUnIG51ciBhbHMgQXJ0aWtlbCBpbgpNb25zdGVybiB1bmQgUmFldW1lbiwgZGFzcyBzaWNoIGRhIG51ciBrZWluZXIgbWVociBkb2xsCmJlc2Nod2VydCA6LSkgQXVjaCBmdWVyIGRhcyBwb2VzZSBNb25zdGVyLCB3ZWxjaGVzIGRpZQpEaXNrdXNzaW9uIG1hbCBhdXNnZWxvZXN0IGhhdCwgZ2lidCBlcyBqZXR6dCBlaW4gTWl0dGVsLApzdWNodCBoYWx0LgoKSmV0enQgZGFua2UgaWNoIG5vY2ggZWluaWdlbiBMZXV0ZW4gdW5kIGhvZmZlLCBkYXNzIGljaCBkYQpuaWVtYW5kZW4gdmVyZ2Vzc2U6Ckd1bmR1ciwgQW5hY3Jpb24sIFplcGh5ciwgU3RpbmcsIFJpa3VzLCBDYWxpbWVyYSB1bmQgZGllIE1hZ3MsCmRpZSBtaWNoIFd1cnN0aSByZXR0ZXRlbiwgYWxzIGVzIG5pY2h0IHdlaXRlciBnaW5nIDotKQoKVmllbCBTcGFzcyBqZXR6dCBtaXQgZGVyIFF1ZXN0LCBzaWUgaXN0IGFuIGVpbmVyIFN0ZWxsZSBldHdhcwpMZXZlbC1hYmhhZW5naWcsIGRhc3Mgc2ljaCBkYSBhbHNvIGtlaW5lciB3dW5kZXJ0LgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNZXJjaSAoQW5hdG9sLCAyOS4gT2t0IDE5OTgsIDA0OjAwOjI0KToKfiMhIHJuPUFyayBydD05MDk2MTAxMDggcmc9ZC53dWVzdGUKfiMhIHRpZD05MDk2MTAxMDgKU3RpbW10LCBpbiBkZXIgUXVlc3QgdGF1Y2h0IGRlciBiZXN0LiBBcnQuIHNpbmcuIGZlbS4gaW4gZGVyIFRhdCBudXIKaW4gc2VpbmVyIGdld29obnRlbiBGdW5rdGlvbiBhdWYuLi4gYWJlci4uLiBudW4sIGRpZSBLYXRha29tLi4uIGFlaCwKbmFqYSwgZGllIGdlaG9lcmVuIGF1Y2ggbmljaHQgd2lya2xpY2ggenVyIFF1ZXN0LCBnZWxsPyA6bykKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWVyY2kgKEFyaywgMjkuIE9rdCAxOTk4LCAxNDoxNDo0Nik6Cn4jISBybj1BbmF0b2wgcnQ9OTA5NjMzNjI0IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTA5NjEwMTA4CkhtLCB2b24gT2JqZWt0ZW4gYWxsZ2VtZWluZXJlciBBcnQsIGhhYiBpY2ggYXVjaCBuaXggZ2VzYWd0LCBvZGVyPwoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoLCBiZWkgbWlyIC4uLiAoWWVuZGksIDI5LiBPa3QgMTk5OCwgMTY6MDU6MjIpOgp+IyEgcm49QXJrIHJ0PTkwOTYxMDA4MyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkwOTYxMDA4MwpXYXMgYXVjaCBpbW1lciBEdSBtaXQgZGVtIEFydGlrZWwgImRpZSIgYW5nZXN0ZWxsdCBhaGFiZW4gbWFnc3QsIEFSSzoKRGllIEFua3VlbmRpZ3VuZyB3YXIgZWluZSBkZXIgc2Nob2Vuc3RlbiB1bmQgc3RpbW11bmdzdm9sbHN0ZW4sIGRpZSBtaXIgamUKdW50ZXIgZGllIEF1Z2VuIGdla29tbWVuIGlzdC4gV2VubiBEdSBEaXIgYmVpIGRlciBRdWVzdCBhdWNoIHNvdmllbCBNdWVoZQpnZWdlYmVuIGhhc3QuLi4gOykKIApZVFkKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIFd1ZXN0ZSBsZWJ0IChCb2luZywgMTEuIE1hciAxOTk5LCAxOToyMzozNyk6CkhpaG8sCmVuZGxpY2ggaGFiIGljaCBlaW5lbiBha3RpdmVuIFJNIGZ1ZXIgZGllIFd1ZXN0ZSBnZWZ1bmRlbjogV2ltIQpWaWVsIEVyZm9sZyBiZWltIEJhZXVtZSBwZmxhbnplbi4gOikKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERpZSBXdWVzdGUgbGVidCAoV2ltLCAxMS4gTWFyIDE5OTksIDE5OjI1OjUxKToKfiMhIHJuPUJvaW5nIHJ0PTkyMTE4MDIxNyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkyMTE4MDIxNwoKV2llPyBBa3RpdiBtdXNzIGljaCBhdWNoIHNlaW4/IFVya3MgOikKRGVubm9jaCBlcnN0bWFsIGhhbGxvIG1pdGVpbmFuZGVyIHVuZCBtYWwgc2VoZW4sIGFzIG1hbiBzbyB0dW4ga2FubiAqRyoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERpZSBXdWVzdGUgbGVidCAoQXJrLCAxMS4gTWFyIDE5OTksIDIwOjE3OjIxKToKfiMhIHJuPVdpbSBydD05MjExODAzNTEgcmc9ZC53dWVzdGUKfiMhIHRpZD05MjExODAyMTcKQWxzbywgbWVpbmUgQnVncyBiZXNlaXRpZ2VuIC4uLiBobSwgc28gdmllbGUgc2luZCBkYSBkb2NoIGdhciBuaWNodCA6LSkKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEaWUgV3Vlc3RlIGxlYnQgKEFzbW9kaXMsIDExLiBNYXIgMTk5OSwgMjA6NTc6MDUpOgp+IyEgcm49QXJrIHJ0PTkyMTE4MzQ0MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkyMTE4MDIxNwpoZXJ6bGljaGVzIGJlaWxlaWQsIFdpbSA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERpZSBXdWVzdGUgbGVidCAoV2ltLCAxMS4gTWFyIDE5OTksIDIxOjAxOjExKToKfiMhIHJuPUFzbW9kaXMgcnQ9OTIxMTg1ODI1IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTIxMTgwMjE3CldpbSB6aWVodCBlaW4gVHJhdWVyYmFuZCBhbiB1bmQgYmVkYW5rdCBzaWNoIGJlaSBBc21vZGlzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRGllIFd1ZXN0ZSBsZWJ0IChPcmt0b2V0ZXIsIDEyLiBNYXIgMTk5OSwgMTQ6MDM6MDYpOgp+IyEgcm49V2ltIHJ0PTkyMTE4NjA3MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkyMTE4MDIxNwpBcnRpa2VsIDUgdm9uIDUgPwoKRHVlIFd1ZXN0ZSBsZWJ0ID8KCipzdGF1bioKCk9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJdCdzIG5vdCBhIGJ1ZywgaXQncyBhIC4uLiBmYWN0ICEgKEFyaywgMTQuIE1haSAxOTk5LCAxOTowNDo1MCk6CldlaWwgaW1tZXIgbWFsIHdpZWRlciB3YXMgZGVyYXJ0aWdlcyBpbSBSZXAtZmlsZSBzdGVodCwgc2NocmVpYmUgaWNoIGpldHp0CmRvY2ggbWFsIHdhcyBoaWVyIGluIGRpZSBNUEEuIEFhYWFhbHNvLCBkZXIgQXVzZ2FuZyBpbSBUdXJtLCBkZXIgbmljaHQgbWVocgpkYWhpbiB6dXJ1ZWNrZnVlaHJ0LCB2b24gd28gYXVzIG1hbiBkZW4gUmF1bSBiZXRyZXRlbiBoYXQsIGRlciBpc3QgYWJzaWNodGxpY2gKc28gZ2V3YWVobHQuIERhIGRhcyBHYW56ZSBydW5kbGljaCBpc3QgKHJ1bmRlciBUdXJtKSB1bmQgYXVzc2VyZGVtIHJlY2h0IGdyb3NzCihCaWJsaW90aGVrIGhhbHQpLCBnaWJ0IGVzIGhpZXIsIHdlbm4gbWFuIGVzIHNpY2ggbWFsIGJpbGRoYWZ0IHZvcnN0ZWxsdCAob2Rlcgp2ZXJzdWNodCksIGdpYnQgZXMgaW4gZGVyIEJpYm8gZWluZW4gQXVzZ2FuZyBuYWNoIFN1ZWRlbiB1bmQgZWluZW4gbmFjaApTdWVkb3N0ZW4uIFRqYSwgdW5kIGRlciBuYWNoIFN1ZWRlbiBpc3QgbnVuIG1hbCBkZXIsIGRlciB3aWVkZXIgaGluYXVzZnVlaHJ0LApuaWNodCBkZXIgbmFjaCBTdWVkb3N0ZW4sIGF1Y2ggd2VubiBtYW4gZGllIEJpYm8gdm9tIEdhbmcgYXVzIG5hY2ggTm9yZHdlc3RlbgplcnJlaWNodC4gS2xpbmd0IGtvbWlzY2ggdW5kIHZlcndpcnJlbmQsIHdpcmQgYWJlciBzbyBibGVpYmVuIDotKQpXZXIgZGFzIGpldHp0IG5pY2h0IGJlZ3JpZmZlbiBoYXQsIGtvbW10IGhhbHQgbWFsIG5hY2ggRGFybXN0YWR0LCBkYW5uIGdlaGVuCndpciBtYWwgd2FzIHRyaW5rZW4sIGRhbm4gdmVyc3RlaHQgbWFuIGRhcyBzaWNoZXIgLi4uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEl0J3Mgbm90IGEgYnVnLCBpdCdzIGEgLi4uIGZhY3QgISAoR3JpbW1ib3JuLCAxNC4gTWFpIDE5OTksIDIyOjQ1OjI1KToKfiMhIHJuPUFyayBydD05MjY3MDE0OTAgcmc9ZC53dWVzdGUKfiMhIHRpZD05MjY3MDE0OTAKR2xhdWIgbWlyLCBpbiBLb2VsbiBrYW5uIG1hbiBhdWNoIHdhcyB0cmlua2VuIGdlaGVuLCBkYXNzIGVpbmVtIGhpbnRlcmhlciBkaWUKZ2VyYWRlc3RlbiBXZWdlIGtydW1tIHZvcmtvbW1lbi4KQWJlciBkaWUgRnJhZ2UgaXN0LCB3aWVzbyBtYW4gYmVzb2ZmZW4gWnV0cml0dCB6dXIgQmlibGlvdGhlayBoYXQuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEl0J3Mgbm90IGEgYnVnLCBpdCdzIGEgLi4uIGZhY3QgISAoRGVlcGJsdWUsIDE5LiBNYWkgMTk5OSwgMTQ6MjE6MTIpOgp+IyEgcm49QXJrIHJ0PTkyNjcwMTQ5MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkyNjcwMTQ5MApCZXphaGxzdCBEdSBkYXMgQmFobnRpY2tldCB1bmQgZGllIFplY2hlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJdCdzIG5vdCBhIGJ1ZywgaXQncyBhIC4uLiBmYWN0ICEgKEFyaywgMjAuIE1haSAxOTk5LCAyMTozNDo1NSk6Cn4jISBybj1EZWVwYmx1ZSBydD05MjcxMTY0NzIgcmc9ZC53dWVzdGUKfiMhIHRpZD05MjY3MDE0OTAKQmFobnRpY2tldD8gWmVjaGU/IEFhYWgsIER1IGhhc3Qgc2Nob24gZWluIGJpc3NlcmwgZ2V0cnVua2VuLCB3YXM/IDopCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXhwZXJpbWVudGUgKEFyaywgMjAuIE1haSAxOTk5LCAyMTozNjoxMik6ClNvLCBNdXJhZGggbGFlc3N0IHNpY2ggamV0enQgYXVmIGVpbiBrbGVpbmVzIEV4cGVyaW1lbnQgZWluLCB3ZW5uIG1hbiAuLi4KYWJlciBzZWh0IHNlbGJzdCA6LSkKQWNoIHNvLCBNb3R0byBoaWVyYmVpIGlzdDogTm8gcGFpbiBubyBnYWluICEKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXhwZXJpbWVudGUgKEFyaywgMjAuIE1haSAxOTk5LCAyMTozNjo1Mik6Cn4jISBybj1BcmsgcnQ9OTI3MjI4OTcyIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTI3MjI4OTcyCkRhbmsgZ2VodCBhbiBUb3dlciBmdWVyIGRpZSAuLi4gYWVoIC4uLiBJbnNwaXJhdGlvbiA6LSkKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXVzdGllcmUgKFdpbSwgMjQuIEp1biAxOTk5LCAwMToxMDoxMyk6ClNvLCBkaWUgVmllY2hlciBoYWJlbiBlaW5lIEludGVybmUgVW1zdGVsbHVuZyBlcmhhbHRlbi4gSWNoIGdlaGUgZGF2b24gYXVzLApkYXMgZGllIGFsdGVuIFRpZXJlIG5hY2ggbmVtIFJlYm9vdC9DcmFzaCBicmF2IGF1dG9tYXRpc2NoIHVtZ2VzdGVsbHQgd2VyZGVuLAp6dW1pbmRlc3QgYWJlciBpc3Qgc2ljaGVyLCBkaWUgbmV1ZW4gZnVua3Rpb25pZXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGF1c3RpZXJlIChXaW0sIDI0LiBKdW4gMTk5OSwgMTM6MjY6NTcpOgpXaWU/IEJpc3QgRHUgbmljaHQgdm9uIGRlciBVbmZlaGxiYXJrZWl0IGRlciBNYWdpZXIgdWViZXJ6ZXVndD8gU2NoYWVtIERpY2ghIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEgYXVzc2VyIEJldHJpZWIgKEJpZWxlZmVsZCwgMzAuIEp1biAxOTk5LCAyMjozMzo1MSk6Ck1vaW4hCgpXZWdlbiBlaW5lcyBCdWdzIGlzdCBkaWUgQXJlbmEgenVyIFplaXQgbmljaHQgYmVudXR6YmFyLCBhbHNvIG5pY2h0IHd1bmRlcm4sCndlbm4gc2ljaCBEdWVsbGUgbmljaHQgb3JkZW50bGljaCBhbm1lbGRlbiBsYXNzZW4uCgotQmllbGVmZWxkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJlbmEgYXVzc2VyIEJldHJpZWIgKExlaWJuaXosIDMwLiBKdW4gMTk5OSwgMjI6MzQ6NDUpOgp+IyEgcm49QmllbGVmZWxkIHJ0PTkzMDc3NDgzMSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkzMDc3NDgzMQpvY2ggbWVubm8uLi4uCgppY2hoYWV0dGUgc2llIGdldG9ldGV0IQoKbGVpYmkgKmdydW1tZWxuZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIHdpZWRlciBpbiBCZXRyaWViIChXaW0sICAyLiBKdWwgMTk5OSwgMTQ6NDY6MDApOgpCaXMgenVyIG5hZWNoc3RlbiBBZW5kZXJ1bmcgYW4gbGliLWludGVybmEgKGdyaW5zIFBhZHJlaWMpIGxhZXVmdCBkaWUgQXJlbmEKZXJzdG1hbCB3aWVkZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJlbmEgd2llZGVyIGluIEJldHJpZWIgKExlaWJuaXosICAyLiBKdWwgMTk5OSwgMTk6MTg6NDgpOgp+IyEgcm49V2ltIHJ0PTkzMDkxOTU2MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkzMDkxOTU2MApkYW5rZSEKCkxlaWJpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcmVuYSAoV2ltLCAxMC4gSnVsIDE5OTksIDE3OjU5OjQ0KToKTmFjaCBlaW5lciB3ZWl0ZXJlbiBBZW5kZXJ1bmcgaW4gZGVyIE11ZGxpYiBfa29lbm50ZV8gZXMgc2VpbiwgZGFzcyBldHdhcyBhbgpkZXIgQXJlbmEgbWFsIHdpZWRlciBuaWNodCBmdW5rdGlvbmllcnQuCkF1Y2ggd2VubiBpY2ggZ2xhdWJlLCBhbGxlIFN0ZWxsZW4gZ2VmdW5kZW4genUgaGFiZW4sIGthbm4gZXMgZGVubm9jaCBzZWluLApkYXNzIGljaCBldHdhcyB1ZWJlcnNlaGVuIGhhYmUuCkluIGRlbSBGYWxsIGJpdHRlIGVpbmUgTWFpbC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcmVuYSAoQW5hdG9sLCAxMC4gSnVsIDE5OTksIDE5OjI1OjIwKToKfiMhIHJuPVdpbSBydD05MzE2MjIzODQgcmc9ZC53dWVzdGUKfiMhIHRpZD05MzE2MjIzODQKQWVuZGVydCBlaWdlbnRsaWNoIGF1c3NlciBQYWRyZWljIG5vY2ggamVtYW5kIGV0d2FzIGFuIGRlciBNdWRsaWI/IF06LSkKCkFuYXRvbCwgY291bGRuJ3QgcmVzaXN0IDspCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcmVuYSAoV2ltLCAxMC4gSnVsIDE5OTksIDE5OjI1OjUyKToKfiMhIHJuPUFuYXRvbCBydD05MzE2Mjc1MjAgcmc9ZC53dWVzdGUKfiMhIHRpZD05MzE2MjIzODQKRGllIGxldHp0ZW4gendlaSBBZW5kZXJ1bmdlbiB3YXJlbiB2b24gbWlyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXVzdGllcmUgKFdpbSwgMzEuIEF1ZyAxOTk5LCAxMDo0NjozNyk6CgpTbywgYW4gZGVuIEhhdXN0aWVyZW4gZ2FiIGVzIGVpbmUga2xlaW5lIFZlcmJlc3NlcnVuZyBpbiBCZXp1ZyBhdWYgZGVuClJlYWxpc211cy4KRGFzIHdpcmQgZXVjaCBuaWNodCBub3R3ZW5kaWdlciBXZWlzZSBnZWZhbGxlbiA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYXVzdGllcmUgKEJvaW5nLCAzMS4gQXVnIDE5OTksIDEwOjQ3OjExKToKfiMhIHJuPVdpbSBydD05MzYwOTYzOTcgcmc9ZC53dWVzdGUKfiMhIHRpZD05MzYwOTYzOTcKS2FubiBtYW4gc2llIGVuZGxpY2ggdG9ldGVuPyA6KQogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhhdXN0aWVyZSAoV2ltLCAzMS4gQXVnIDE5OTksIDExOjQ0OjQ3KToKfiMhIHJuPUJvaW5nIHJ0PTkzNjA5NjQzMSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkzNjA5NjM5NwoKTmFqYSwgZGFzIGlzdCBub2NoIGluIEFyYmVpdCwgaWNoIGhhYmUgZGEgZWluZSBJZGVlIGRpZSBzaWNoZXIgZnVlciBLZXJiZW4Kc29yZ2VuIHdpcmQgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIYXVzdGllcmUgKFRhcmFnb24sIDMxLiBBdWcgMTk5OSwgMTE6NTU6MTIpOgp+IyEgcm49V2ltIHJ0PTkzNjA5OTg4NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkzNjA5NjM5NwpNYWdpZXJrZXJiZW4gb2RlciBTcGllbGVya2VyYmVuID8gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBIYXVzdGllcmUgKFdpbSwgMzEuIEF1ZyAxOTk5LCAxMTo1NTo0Nik6Cn4jISBybj1UYXJhZ29uIHJ0PTkzNjEwMDUxMiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTkzNjA5NjM5NwpLZXJiZW4gZnVlciBNYWdpZXIgaW4gU3BpZWxlcm4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHlyYW1pZGVucXVlc3QgKFdpbSwgIDcuIEphbiAyMDAwLCAyMDowMzoyMik6CnouWi4gbW9lY2h0ZSBpY2ggYWxsZSBiaXR0ZW4sIF9mcmVpd2lsbGlnXyBhdXMgZGVyIFF1ZXN0IHp1IGJsZWliZW4uIERhcwplcnNwYXJ0IGVzIG1pciBzaWUgYmlzIHp1IGVpbmVyIFVlYmVyYXJiZWl0dW5nIGFienVoYWVuZ2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFB5cmFtaWRlbnF1ZXN0IChHbG9pbnNvbiwgIDguIEphbiAyMDAwLCAxOToxNTozMyk6Cn4jISBybj1XaW0gcnQ9OTQ3MjcxODAyIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTQ3MjcxODAyCkVzIGxpZXN0IG5pY2h0IGplZGVyIGRpZSBaZWl0dW5nLCBXaW0uIEdlaCBsaWViZXIgYXVmIE51bW1lciBTaWNoZXIuCgpHbG9pbnNvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHlyYW1pZGVuIChXaW0sIDE2LiBKYW4gMjAwMCwgMjE6MTI6MjIpOgpEYW5rIGRlcyBDcmFzaHMga2xhcHB0IHouWi4gd2llZGVyIGFsbGVzLiBEZW4gbmFlY2hzdGVuLCBkZXIgZGVuIEJ1ZyBhdXNsb2VzdAplcnNjaGxhZ2UgaWNoIGFiZXIgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkh1Y2g/IChXaW0sIDE3LiBGZWIgMjAwMCwgMTM6MjY6MzEpOgpWZXJ0cmF1ZW5zd3VlcmRpZ2UgUXVlbGxlbiBzcHJlY2hlbiB2b24gZWluZW0gTG9jaCBpcmdlbmR3byBhbiBkZW4gUmFlbmRlcm4KZGVyIFd1ZXN0ZSwgd2VsY2hlcyB2b3IgZWluaWdlciBaZWl0IG5vY2ggbmljaHQgZGEgd2FyLgoKV2ltIC0gbmljaHQgbWluZGVyIHJhZXRzZWxoYWZ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2FuZHZlcndlaHVuZ2VuIGluIGRlciBXdWVzdGUuLi4gKFdpbSwgMTIuIE1haSAyMDAwLCAwOTo1MzoyMCk6Cldlbm4gZGVyIFdpbmQgd2VodCwKV2VubiBkZXIgU2FuZCBzaWNoIGJld2VndCwKRGluZ2Uga29lbm5lbiBlcnNjaGVpbmVuLCBEaW5nZSB2ZXJzY2h3aW5kZW4uLi4KT2IgRmF0YSBNb3JnYW5hIG9kZXIgUmVhbGl0YWV0PwpXYXMgaXN0IGdlc2NoZWhlbiwgV2FzIGlzdCBwYXNzaWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTYW5kdmVyd2VodW5nZW4gaW4gZGVyIFd1ZXN0ZS4uLiAoQXJrLCAxMi4gTWFpIDIwMDAsIDIzOjAyOjMzKToKfiMhIHJuPVdpbSBydD05NTgxMTgwMDAgcmc9ZC53dWVzdGUKfiMhIHRpZD05NTgxMTgwMDAKQXVjaCB3ZW5uIGljaCBhaG5lLCB3YXMgZGEgbG9zIGlzdCwgd2FzIGlzdCBkZW5uIGRhcyBmdWVyIGVpbiBrdXJ6ZXIgVGV4dCwKV2ltLCBoZT8gUnVlaHInIGRpZSBUcm9tbWVsLCBhdWYgZGFzcyBzaWNoIGFsbGUgc2FiYmVybmQgdm9yIE5ldWdpZXIgaW4gZGllCld1ZXN0ZSBkcmFlbmdlbG4sIGJpcyBhdWNoIGRlbSBsZXR6dGVuIGRpZSBCaXJuZSBicmVubnQuIFZlcnRpZWZlCk1hcmtldGluZ2FrdGl2aXRhZXRlbiwgZGFtaXQgZGllIFd1ZXN0ZSBsZWJ0LCBsYXNzIHNpZSBibHVlaGVuLCBnZXRyYWVua3QgbWl0CmRlbSBCbHV0IGRlciBTcGllbGVyLCBiZWxlYnQgZHVyY2ggZGllIHZlcnRyb2NrbmV0ZW4gS25vY2hlbiBkZXIgV2FnZW11dGlnZW4uCgpPZGVyIHNvIC4uLgoKKmdyaWVuKgoKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWhlaW1uaXN2b2xsZXMgYXVzIGRlciBXdWVzdGUgKGRpZXNtYWwgYXVzIG9mZml6aWVsbGVyIEhhbmQpIDspIChUc3VuYW1pLCAxMi4gTWFpIDIwMDAsIDIzOjI1OjQ3KToKV2llIGVpbmUgRmF0YW1vcmdhbmEgcmFndCBzZWl0IGt1cnplbSBlaW4gbmV1ZXMgR2ViYWV1ZGUgYXVzIGRlbQpoZWlzc2VuIFd1ZXN0ZW5zYW5kLiAKCk1hbiBtdW5rZWx0LCBHbGFkaWF0b3JlbiBoYWV0dGVuIHNpY2ggbmllZGVyZ2VsYXNzZW4sIGlyZ2VuZHdvIGVudGxhbmcKZWluZXMgYmlzIHZvciBrdXJ6ZW0gbm9jaCB2b2VsbGlnIHVuYmVrYW5udGVuIE5lYmVuYXJtcyBkZXMgTmFibGEuCgpNYW4gbXVua2VsdCB3ZWl0ZXIsIGRpZSBHbGFkaWF0b3JlbiBoYWV0dGVuIGVpbmUgU2NodWxlIGdlZ3J1ZW5kZXQsIGluIGRlcgpkaWUgdmVyc2NoaWVkZW5zdGVuIERpc3ppcGxpbmVuIGRlcyBLYW1wZmVzIGd1ZWJ0IHdlcmRlbi4gCgpNYW4gbXVua2VsdCB3ZWl0ZXIsIGRpZSBHbGFkaWF0b3JlbiBzZWllbiB1bmdsYXVibGljaCBzdGFyay4KClVuZCBtYW4gbXVua2VsdCwgZGllIFNjaHVsZSBncnVlbmRlIGF1ZiBkZW4gUHJpbnppcGllbiBkZXMgc2FnZW51bXdvYmVuZW4KJ1BoeWdvcycgdW5kIGRlcyBnZWhlaW1uaXN2b2xsZW4gJ0phbWFsc2tpJywgSGVsZGVuIGF1cyBncmF1ZXIgVm9yemVpdCwKZGVyZW4gSWRlZW4gZGllc2UgU2NodWxlIGVyc3QgZW50c2VoZW4gbGllc3Nlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWhlaW1uaXN2b2xsZXMgYXVzIGRlciBXdWVzdGUgKGRpZXNtYWwgYXVzIG9mZml6aWVsbGVyIEhhbmQpIDspIChBcmssIDEyLiBNYWkgMjAwMCwgMjM6MzE6MTgpOgp+IyEgcm49VHN1bmFtaSBydD05NTgxNjY3NDcgcmc9ZC53dWVzdGUKfiMhIHRpZD05NTgxNjY3NDcKUGFoLCBIb2VyZW5zYWdlbi4gV2lyIGZvcmRlcm4gQmV3ZWlzZSAhISEKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdlaGVpbW5pc3ZvbGxlcyBhdXMgZGVyIFd1ZXN0ZSAoZGllc21hbCBhdXMgb2ZmaXppZWxsZXIgSGFuZCkgOykgKFRzdW5hbWksIDEyLiBNYWkgMjAwMCwgMjM6MzU6MTIpOgp+IyEgcm49QXJrIHJ0PTk1ODE2NzA3OCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk1ODE2Njc0NwpCZXdlaXNlIHdpbGxzdCBEdT8KCk5hLCBkYW5uIGdlaCBkb2NoIGVpbmZhY2ggbWFsIHVuZCBzdGF0dGUgZGVuIEdsYWRpYXRvcmVuIGVpbmVuIEJlc3VjaCBhYi4uLgpTaWUgZnJldWVuIHNpY2ggc2Nob24hCgppLlYuIFRzdW5hbWkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEdlaGVpbW5pc3ZvbGxlcyBhdXMgZGVyIFd1ZXN0ZSAoZGllc21hbCBhdXMgb2ZmaXppZWxsZXIgSGFuZCkgOykgKEFyaywgMTIuIE1haSAyMDAwLCAyMzo0ODoyMyk6Cn4jISBybj1Uc3VuYW1pIHJ0PTk1ODE2NzMxMiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk1ODE2Njc0NwpOZW5lLCBpY2ggYmluIGRhZnVlciB6dSB3ZWljaGVpZXJpZy4gQWJlciBhbGxlcywgd2FzIGRpZSBTdGVyYmVyYXRlIGRlcgpTcGllbGVyIGVyaG9laHQsIHppZWh0IGViZW4gbWFnaXNjaCBhbiA6LSkKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHZWhlaW1uaXN2b2xsZXMgYXVzIGRlciBXdWVzdGUgKGRpZXNtYWwgYXVzIG9mZml6aWVsbGVyIEhhbmQpIDspIChUc3VuYW1pLCAxMy4gTWFpIDIwMDAsIDAwOjI4OjA0KToKfiMhIHJuPUFyayBydD05NTgxNjgxMDMgcmc9ZC53dWVzdGUKfiMhIHRpZD05NTgxNjY3NDcKU3RlcmJlcmF0ZT8gQWNoIHdhcywgbWFuIG11bmtlbHQsIGRpZSBHbGFkaWF0b3JlbiBzZWllbiBsaWViIHVuZCBuZXR0Li4uCk1hbiBtdW5rZWx0IHdlaXRlciwgZGllIFNjaHVsZSBzZWkgYWJzb2x1dCBnZWVpZ25ldCBmdWVyIEJsdWVtY2hlbnBmbHVlY2tlciwKZGllIHN0dW5kZW5sYW5nIGRlbiBnbGVpY2hlbiBSYXVtIGFic3VjaGVuLgoKVW5kIG1hbiBtdW5rZWx0LCBkaWUgU2NodWxlIHNlaSBhYnNvbHV0IGdlZWlnbmV0IGZ1ZXIgZGVuIHByb2Zlc3Npb25lbGwgCmF1c2dlcnVlc3RldGVuIEFiZW50ZXVyZXIgYXVmIGRlciBTdWNoZSBuYWNoIGRlbSBsZXR6ZW4gS2ljay4uLgoKTWl0IGVpbmVtIFNhdHo6IGZ1ZXIgYWxsZSBpc3QgZXR3YXMgZGFiZWkgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEdlaGVpbW5pc3ZvbGxlcyBhdXMgZGVyIFd1ZXN0ZSAoZGllc21hbCBhdXMgb2ZmaXppZWxsZXIgSGFuZCkgOykgKEFwc3UsIDEzLiBNYWkgMjAwMCwgMDE6NDk6NTEpOgp+IyEgcm49QXJrIHJ0PTk1ODE2ODEwMyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk1ODE2Njc0NwpBYmVyIGRhbm4gYml0ZSBuaWNodCBhbHMgTWFnaWVyIG1pdCBkZW0gWmFwdG9vbCB3ZWRlbG5kIDstKSkKCkFwc3UKYXVmIEFya3MgZGllKCkgc2NoaWVsZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBHZWhlaW1uaXN2b2xsZXMgYXVzIGRlciBXdWVzdGUgKGRpZXNtYWwgYXVzIG9mZml6aWVsbGVyIEhhbmQpIDspIChHbG9pbiwgMTMuIE1haSAyMDAwLCAxMzo1Mzo0NSk6Cn4jISBybj1BcHN1IHJ0PTk1ODE3NTM5MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk1ODE2Njc0NwpFaW4gbmV1ZXMgR2ViYWV1ZGU/IEhhYnQgaWhyIGVuZGxpY2ggZGllIHNhZ2VuaGFmdGUgU3RhZHQgQW5hZ3JvbSBBdGFmCm1pdHRlbHMgc2llZGVuZGVtIFp1Y2tlcnNhbmQgZ2VmYW5nZW4/CgpHbG9pbiBoYXQgenUgdmllbCBLYWVwdCduIEJsYXViYWVyIGdlbGVzZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBHZWhlaW1uaXN2b2xsZXMgYXVzIGRlciBXdWVzdGUgKGRpZXNtYWwgYXVzIG9mZml6aWVsbGVyIEhhbmQpIDspIChBcmssIDE1LiBNYWkgMjAwMCwgMjE6NTQ6MDQpOgp+IyEgcm49QXBzdSBydD05NTgxNzUzOTEgcmc9ZC53dWVzdGUKfiMhIHRpZD05NTgxNjY3NDcKSmV0enQgbmljaHQgd2llZGVyIHdlaW5lbi4gSWNoIHdlcmRlIGFlbHRlciAoc3VidGlsZXI/ISkgdW5kIGdlYnJhdWNoZSBkaWVzZQpwb2VzZSBGdW5rdGlvbiBuaWNodCBtZWhyLiBVbmQgaGFlbWlzY2hlCiJBYmVyLWRvLWRhbWFnZS1iZW51dHp0LUR1LWltbWVyLW5vY2gtZmxlaXNzaWciIFJ1ZmUgd2VyZGVuIGVpbmZhY2ggaWdub3JpZXJ0LgpJY2ggbWVpbmUsIGVzIGdpYnQgaGFsdCBTYWNoZW4sIGdlZ2VuIGRpZSBoaWxmdCBudXIgZWluZXM6IFZvcnNpY2h0IHVuZApJbnRlbGxpZ2Vuei4KRGFzIHdhcmVuIGpldHp0IGZ1ZXIgdmllbGUgaG9oZSBBbnNwcnVlY2hlLCBhYmVyIHdhdHQgc29sbCdzLiBXZXIgd2llZGVyIHZvcgpkaWUgSHVuZGUgZ2VodCwgc29sbCBzaWNoIHZlcmdlZ2Vud2FlcnRpZ2VuLCBkYXNzIHJlaW4gdGVjaG5pc2NoIGF1ZiBlaW5lcgp3aWxkIGRyZWhlbmRlbiBQbGF0dGUgaXJnZW5kd28gaW4gQmVybGluIG51ciBlaW4gcGFhciBCaXRzIHZlcmFlbmRlcnQgd3VyZGVuLApuZXQgbWVociwgYWJlciBhdWNoIG5ldCB3ZW5pZ2VyLiBNaXQgZGllc2VtIGtsZWluZW4gdGVjaG5pc2NoZW4gVHJpY2sgbGllZmVyZQppY2ggRXVjaCBkYWZ1ZXIgR2VzcHJhZWNoc3N0b2ZmLCBkZXIgbWljaCB6dW0gZ2VybiBnZXNlaGVuZW4gR2FzdCBhbGxlcgpTdGFtbXRpc2NoZ2FzdGhhZXVzZXIgRGV1dHNjaGxhbmRzIG1hY2hlbiBtdWVzc3RlIHVuZCBkZW4gVW50ZXJoYWx0dW5nc3dlcnQKZWluZXMgZHVyY2hzY2huaXR0bGljaGVuIEZ1c3NiYWxsYWVuZGVyc3BpZWxzIGhldWVyIGFuIGRlbiBSYW5kZSBkZXIKTmljaHRpZ2tlaXQgZHJhZW5ndC4KTmFqYSwgYWJlciBlaWdlbnRsaWNoIHdvbGx0ZSBpY2ggbm9jaHdhcyBzY2hyZWliZW4sIGFsc28gbGFzc2VuIHdpciBkaWUKRGlza3Vzc2lvbiBtYWwgbGllYmVyIDotKQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGx1ZXNzZWwgJiBSb3R3dWxmIGRlIFRhbWFydmlsbGUgKFRzdW5hbWksIDIzLiBNYWkgMjAwMCwgMjM6NDY6MDcpOgpFaW4gcGFhciB2b24gRXVjaCBpc3QgYXVmZ2VmYWxsZW4sIGRhc3MgUm90d3VsZiBuaWNodCBpbW1lciBkZW4gClNjaGx1ZXNzZWwgZGFiZWkgaGF0LgpJY2ggaGFiZSBSb3R3dWxmIG51biB1ZWJlcnpldWdlbiBrb2VubmVuLCBkYXNzIGVyIGRlbiBTY2hsdWVzc2VsIHZvbiBudW4gYW4KYXVjaCB3aXJrbGljaCBpbW1lciBiZWkgc2ljaCB0cmFlZ3QuCgpUc3VuYW1pIChmbGVpc3NpZyBhbSBSZXBmaWxlIGFiYXJiZWl0ZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHbGFkaWF0b3JlbnNjaHVsZSAoVGlhbWFrLCAxNi4gSnVuIDIwMDAsIDEzOjE5OjQ4KToKTWFhYWhsemVpdCEKCkRhcyBNZXR6ZWxuIHZvbiBOUENzIGluIGRlciBHbGFkaWF0b3JlbnNjaHVsZSBnZXNjaGllaHQgYmlzIGF1ZiBFbnR3YXJudW5nCmR1cmNoIFRzdW5hbWkgZXJzdG1hbCBhdWYgZWlnZW5lIEdlZmFoci4gRXMgaXN0IG1pdCB2ZXJzY2hpZWRlbmVuIEJ1Z3MgYmlzIGhpbgp6dSB1bmdlcmVjaHRmZXJ0aWd0ZW4gWmFwcyB6dSByZWNobmVuLgoKVGlhbWFrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2xhZGlhdG9yZW5zY2h1bGUgKFRlZGR5LCAxNi4gSnVuIDIwMDAsIDIyOjI4OjMyKToKfiMhIHJuPVRpYW1hayBydD05NjExNTQzODggcmc9ZC53dWVzdGUKfiMhIHRpZD05NjExNTQzODgKTWV0emVsdCBtYW4gbmljaHQgaW1tZXIgYXVmIGVpZ2VuZSBHZWZocj8KClRlZGR5LCBkZXIgc2ljaCB3dW5kZXJ0LCBvYiBzaWNoIERBUyBhdWNoIGdlYWVuZGVydCBoYXQuIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKJ0VudHdhcm51bmcnIChUc3VuYW1pLCAxOS4gSnVuIDIwMDAsIDIzOjA5OjU0KToKRGFzIE1ldHplbG4gdm9uIE5QQ3MgaW4gZGVyIEdsYWRpYXRvcmVuc2NodWxlIGdlc2NoaWVodCB3ZWl0ZXJoaW4gYXVmCmVpZ2VuZSBHZWZhaHIuIEJsb3NzLCBqZXR6dCBzdGlyYnQgbWFuIGFuIGVpZ2VuZXIgVW5nZXNjaGlja3RoZWl0IHN0YXR0IGFuCidhcmNoaXRla3RvbmlzY2hlbiBQcm9ibGVtZW4nLgoKVHN1bmFtaSwgd2VkZWx0IG1pdCBlaW5lbSAnTmVwb3MgTmVybyBmcmV1dCBzaWNoIGF1ZiBldXJlbiBCZXN1Y2gnLUZhZWhuY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNsb2RpdXMgT3B0aW11cy4uLiAoVHN1bmFtaSwgMjEuIEp1biAyMDAwLCAxOTo0NDozOCk6CkNsb2RpdXMgaXN0IG51biBub2NoIGV0d2FzIGdlcmVpenRlci4uLiB2b3IgYWxsZW0sIHdlbm4gbWFuIHNpY2ggYW4gc2VpbmVtClByaXZhdHZlcm1vZWdlbiBndWV0bGljaCB0dW4gd2lsbCEKCihaaXRhdDogVHN1bmFtaSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0ZXJuZW5mZXVlcnJpbmcgKFRzdW5hbWksIDE0LiBKdWwgMjAwMCwgMjI6NTQ6MDApOgpJY2ggaGFiZSBtYWwgd2llZGVyIG1laW4gUmVwZmlsZSBhYmdlYXJiZWl0ZXQgdW5kIHVudGVyIGFuZGVyZW0gZWluZW4KQnVnIGltIFN0ZXJuZW5mZXVlcnJpbmcgdm9uIEliJ24gU2FpZCBiZWhvYmVuLiBEZXIgUmluZyBmdW56dCBudW4gc28sIHdpZQplciBkYXMgZWlnZW50bGljaCBzY2hvbiB2b24gQW5mYW5nIGFuIHNvbGx0ZS4KCkRhbmsgYW4gQmlyZHksIGRlciBtaWNoIGRhcmF1ZiBoaW5nZXdpZXNlbiBoYXQuCgpWaWVsIFNwYXNzIG1pdCBkZW0gVGVpbCEKClRzdW5hbWkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClpvb3RpZXJlIChXaW0sICA4LiBBdWcgMjAwMCwgMTU6MzY6NTcpOgpCZWltIEthdGVyIHd1cmRlbiBlaW5pZ2UgRmxvZWhlIChvZGVyIGRvY2ggQnVncz8pIHZlcnNjaG9iZW4uCkljaCBob2ZmZSwgZGFzIGFybWUgVGllciBpc3QgbnVuIGV0d2FzIHRyZXVlciBhbHMgdm9yaGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmF1c3RrYWVtcGZlcjogYXVmZ2VwYXNzdCEgKFRzdW5hbWksIDExLiBBdWcgMjAwMCwgMDA6MjQ6MzEpOgpEZXIgRmF1c3RrYWVtcGZlciBpbiBkZXIgR2xhZGlhdG9yZW5zY2h1bGUgaXN0IG51biBmdWVyIEthcmF0ZWthcyBiZXNvbmRlcnMKaW50ZXJlc3NhbnQuIFNjaGF1dCdzIGV1Y2ggYW4uCgpUc3VuYW1pLCBDaGVmYXVzYmlsZGVyIHVuZCBDaGVmYXVzc3RhdHRlciB2b24gdG9sbGVuIEdlZ2Vuc3RhZW5kZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hY2h0cmFnIC4uLiA6KSAoVHN1bmFtaSwgMTEuIEF1ZyAyMDAwLCAwMDoyOToyMCk6Ck5hdHVlcmxpY2ggJ2JlbnV0enQnIGRlciBGYXVzdGthZW1wZmVyIGJlc2FndGVzIFRlaWwgc2VsYmVyIGF1Y2guIEVyIGhhdXQKbnVuIGVpbiBrbGl0emVrbGVpbmVzIGJpc3NjaGVuIG1laHIgenUgOikKClRzdW5hbWksIENoZWZhdXNiaWxkZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFjaHRyYWcgLi4uIDopIChEaWVkZXIsIDExLiBBdWcgMjAwMCwgMDA6MzA6NDUpOgp+IyEgcm49VHN1bmFtaSBydD05NjU5NDY1NjAgcmc9ZC53dWVzdGUKfiMhIHRpZD05NjU5NDY1NjAKaGFldHRlc3QgZHUgZGFzIGpldHp0IGF1Y2ggbmFjaGdlcmVpY2h0LCB3ZW5uIG5pY2h0IGdsZWljaCAzMCBzZWsuIG5hY2ggZGVtCnZvcmlnZW4gUG9zdGluZyBkZXIgZXJzdGUgZHJhbiBhYmdlcmF1Y2h0IHdhZXJlPyA6LSkKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hY2h0cmFnIC4uLiA6KSAoVHN1bmFtaSwgMTEuIEF1ZyAyMDAwLCAwMDozNTowNSk6Cn4jISBybj1Uc3VuYW1pIHJ0PTk2NTk0NjU2MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk2NTk0NjU2MApIbW0gamEgOikgaWNoIGhhZXR0ZXMgZXMgZ3JhZCBzY2hyZWliZW4gd29sbGVuLCBkYSBpc3QgZGVyIGVyc3RlIHNjaG9uCmFiZ2VuaXBwZWx0Li4uCgpJbW1lciBkaWVzZSBTcGllbGVyIGRpZSBrb3BmbG9zIGlyZ2VuZHdvIHJlaW5zcHJpbmdlbi4uLiB0cyA6KQoKVHN1bmFtaSwgQ2hlZmFydGlrZWxzY2hyZWliZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGYXVzdGthZW1wZmVyOiBhdWZnZXBhc3N0ISAoRGVlcGJsdWUsIDEzLiBBdWcgMjAwMCwgMjE6MjE6NTYpOgp+IyEgcm49VHN1bmFtaSBydD05NjU5NDYyNzEgcmc9ZC53dWVzdGUKfiMhIHRpZD05NjU5NDYyNzEKREFOS0UhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGYXVzdGthZW1wZmVyOiBhdWZnZXBhc3N0ISAoU2luYSwgMTQuIEF1ZyAyMDAwLCAxMDozNjoxMik6Cn4jISBybj1EZWVwYmx1ZSBydD05NjYxOTQ1MTYgcmc9ZC53dWVzdGUKfiMhIHRpZD05NjU5NDYyNzEKZXJzdCB0ZXN0ZW4gZGFubiBiZXNjaHdlfkh+SH5IZGFua2VuIDopCi0+bXVlbGwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1ldHplbCBpbiBkZXIgR2xhZGlhdG9yZW5zY2h1bGUgbm9jaCB0b2VsbGVyIChUc3VuYW1pLCAzMC4gQXVnIDIwMDAsIDIzOjU2OjQ1KToKTWV0emVsbiBpbiBkZXIgU2NodWxlIGlzdCBudW4gbm9jaCB0b2VsbGVyLCBkYSBpY2ggZW5kbGljaCBFcmJhcm1lbiBtaXQKZXVjaCBoYWJlIHVuZCBkaWUgSHlkcmFydWVzdHVuZyBuaWNodCBtZWhyIHZvbiBtZWluZW4gbGllYmVuIEdsYWRpYXRvcmVuCnVuZCBkZW0gYnJlbm5lbmRlbiBTY2h3ZWZlbCBrYXB1dHQgbWFjaGVuIGxhc3NlIQoKVHN1bmFtaS4gTGllYiB1bmQgbmV0dC4KUC5TLiBpY2ggaGFiZSBub2NoIGRhcyBlaW5lIG9kZXIgYW5kZXJlIG5ldHRlICdGZWF0dXJlJyBlaW5nZWJhdXQsIHZpZWxlbgpEYW5rIGFuIGFsbGUsIGRpZSBtaXIgbWVpbiBSZXBmaWxlIHZvbGxzY2hyZWliZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWV0emVsIGluIGRlciBHbGFkaWF0b3JlbnNjaHVsZSBub2NoIHRvZWxsZXIgKEFyaywgMzEuIEF1ZyAyMDAwLCAyMTowNTo0NSk6Cn4jISBybj1Uc3VuYW1pIHJ0PTk2NzY3MjYwNSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk2NzY3MjYwNQpPaGEsIGVpbiBBbnplaWNoZW4gdm9uIFNjaHdhZWNoZT8gRGEgaG9sZSBpY2ggZG9jaCBnbGVpY2ggbWVpbiBzY2h1ZXR6ZW5kZXMKc2Nod2FyemVzIEtydXppZml4IGhlcnZvciAuLi4genVyIEFid2VociB2b24gTWFnaWVycHVlcHBjaGVuIDteKQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxlaWNodHNpbl5IXkheSF5IXkggQWJlbnRldWVybHVzdGlnZSBmdWVyIEVya3VuZHVuZyBnZXN1Y2h0IChlaWx0IG5pY2h0KSEgKEFyaywgIDkuIFNlcCAyMDAwLCAxNjo0OTowNyk6CgpEdSBvZWZmbmVzdCBkaWUgVHVlciB1bmQgYmV0cml0dHN0IGRhcyBHZW1hY2guCkZhY2hpZGggc2NoYXV0IHZvbiBzZWluZW4gUGFwaWVyZW4gYXVmLgpGYWNoaWRoIHNhZ3Q6IE1laXN0ZXIsIHdpZSBzY2hvZW4sIEV1Y2ggZWlubWFsIHdpZWRlciBiZWkgbWlyIHp1IHNlaGVuLApGYWNoaWRoIHNhZ3Q6IHNldHp0IEV1Y2ggZG9jaCwgdW5kIGxhc3N0IHVucyBlaW5lbiBUZWUgdHJpbmtlbi4KRHUgbmlja3N0IGVyZnJldXQuCkR1IHNhZ3N0OiBLbGFyLCBpY2ggZnJldWUgbWljaCBpbW1lciBhdWYgZWluZSBnZW11ZXRsaWNoZSBUYXNzZSBtaXQgRGlyLgpEdSBsYWVzc3QgRGljaCBhdWYgZGVtIEJvZGVuIG5pZWRlci4KRmFjaGlkaCBnaWVzc3QgRGlyIGVpbmUgVGFzc2UgVGVlIGVpbi4KR2VtdWV0bGljaCBzY2hsdWVyZnN0IER1IGRhcyBoZWlzc2UsIGR1ZnRlbmRlIEdldHJhZW5rLgpGYWNoaWRoIHNhZ3Q6IFdhcyBmdWVocnQgRXVjaCBkaWVzbWFsIHp1IG1pciwgTWVpc3Rlcj8KRHUgc2Fnc3Q6IE51biwgaWNoIHNjaGF1ZSBudXIgbWFsIHNvIHZvcmJlaS4gV2FzIGdpYnQgZXMgTmV1ZXM/CkZhY2hpZGggcnVuemVsdCBkaWUgU3Rpcm4uCkZhY2hpZGggc2FndDogSG1tbW0gLi4uCkR1IHNhZ3N0OiBKYT8KWm9lZ2VybGljaCB3ZW5kZXQgc2ljaCBGYWNoaWRoIHZvbiBEaXIgYWIuCkZhY2hpZGggc2FndDogRGEgd2FlcmUgc2Nob24gZXR3YXMgLi4uCkR1IHNhZ3N0OiA/Pz8KRmFjaGlkaCBzZXVmenQuCkZhY2hpZGggc2FndDogV2FydGV0LCBpY2ggZXJ6YWVobGUgRXVjaCBhbGxlcy4KRmFjaGlkaCBlcnphZWhsdDoKSWNoIGJlZ2FiIG1pY2ggdm9yIGVpbmVyIFdlaWxlIHdpZWRlciBoaW51bnRlciBpbiBkaWUgS2F0YWtvbWJlbiBkZXMKVHVybXMuIEtlaW5lIGVpbmZhY2hlIFNhY2hlLCBrb2VubnQgSWhyIEV1Y2ggdm9yc3RlbGxlbi4gSWNoIHdhciBuZXVnaWVyaWcKZ2V3b3JkZW4sIG9iIHNpY2ggdW50ZW4gaW4gZGVuIEdhZW5nZW4gbmljaHQgZWluIGdlaGVpbWVyIFp1Z2FuZyB6dW0gR3JhYgpkZXIgR2VtYWhsaW4gZGVzIFBoYXJhb3MgRXN0aGVrb3RoIGJlZmluZGV0LCBkZXIgamEgZG9ydCB1bnRlbiBhdWZnZWJhaHJ0CndpcmQuIE51biBqYSwgaWNoIGZhbmQgaWhuIG5hY2ggbXVlaHNhbWVyIFN1Y2hlIHRhdHNhZWNobGljaCAuLi4KRHUgdW50ZXJicmljaHN0IEZhY2hpZGg6IFdhcnVtIGhhc3QgRHUgbWlyIGRhcyBuaWNodCBnbGVpY2ggZ2VzYWd0Pz8/CkR1IG11cm1lbHN0OiBKZXR6dCBhaG5lIGljaCBzY2hvbiwgd2FzIGtvbW10LgpGYWNoaWRoIGVycm9ldGV0LgpGYWNoaWRoIHNhZ3Q6IE51biwgTWVpc3RlciwgYWVoLCBpY2ggd29sbHRlIHNpY2hlcmdlaGVuLCBFdWNoIG5pY2h0IHVtc29uc3QKRmFjaGlkaCBzYWd0OiB6dSBzdG9lcmVuLiBXaWUgaWNoIGJlcmVpdHMgYXVzZnVlaHJ0ZSwgZW50ZGVja3RlIGljaCBkaWVzZW4KRmFjaGlkaCBzYWd0OiBadWdhbmcgdW5kIC4uLgpEdSBzYWdzdDogSGFsdCwgZGFzIGdlbnVlZ3QgbWlyIHNjaG9uLiBJY2ggZGVua2UsIER1IGJyYXVjaHN0IG1hbCB3aWVkZXIKRHUgc2Fnc3Q6IEhpbGZlIGJlaW0gRXJrdW5kZW4gZGVzc2VuLCB3YXMgRHUgZGEgdW53aXNzZW50bGljaCBhdWZnZXRhbgpEdSBzYWdzdDogaGFzdCwgb2Rlcj8KRmFjaGlkaCBlcmJsZWljaHQuCkZhY2hpZGggc2FndDogTWVpc3RlciwgSWhyIG11ZXNzdCBFdWNoIHNlbGJzdCBkb3J0aGluIGJlZ2ViZW4sIGVzIGlzdCB6dQpGYWNoaWRoIHNhZ3Q6IGdlZmFlaHJsaWNoIGRvcnQgZnVlciBhbmRlcmUgb2huZSBFdXJlIE1hZWNodGUuCkR1IHNhZ3N0OiBQYXBwZXJsYXBhcHAsIGVyemFlaGwgbWlyIG51ciBuaWNodHMgdm9uICdnZWZhZWhybGljaCcgb2RlciBnYXIKRHUgc2Fnc3Q6ICd0b2VkbGljaCcuIFdpciBicmF1Y2hlbiBhbHNvIG1hbCB3aWVkZXIgZGllIEhpbGZlIHZvbiBlaW4gcGFhcgpEdSBzYWdzdDogcXVlc3QtIHVuZCBzdHVwc2dlaWxlbiBBYmVudGV1cmVybiwgd2llPwpGYWNoaWRoIHN0b3R0ZXJ0OiBOdW4sIE1NbW1laXN0ZXIsIGlpY2ggd3VlcmRlIHNpZSBlaGVyIG1tbXV0aWcgbmVubmVuIC4uLgpEdSBsYWNoc3QgbGF1dHN0YXJrLgpEdSBzdG9lc3N0IEZhY2hpZGggaWJuIERydXpoIGluIGRpZSBSaXBwZW4uCkR1IHNhZ3N0OiBEQVMgaXN0IG1hbCB3aXR6aWcsIEt1bXBlbC4gRHUgd2Vpc3N0IGRvY2gsIG9obmUgQmVsb2hudW5nZW4KRHUgc2Fnc3Q6IGdlaGVuIGRpZSBtZWlzdGVuIGRpZXNlciBTcGV6aWVzIGRvY2ggbmlyZ2VuZHdvIGhpbi4gJ011dGlnJywKRHUgc2Fnc3Q6IGVpbiB0b2xsZXIgU2NoZXJ6LCBkZW1uYWVjaHN0IG5lbm5zdCBEdSBzaWUgYXVjaCBub2NoICdGb3JzY2hlcicsCkR1IHNhZ3N0OiB3YXM/IEhhc3Qgd29obCBlaW5lIFNjaHdhZWNoZSBmdWVyIGRpZSwgaGU/CkZhY2hpZGggc2Nod2VpZ3QgYmVsZWlkaWd0LgpEdSBzYWdzdDogTnVuLCBudW4sIGpldHp0IGhhYiBEaWNoIG1hbCBuaWNodCBzbywgd2lyIG1hY2hlbiBlcyBmYWlyLCBvaz8KRHUgc2Fnc3Q6IEljaCBzY2hhdSBtaXIgamV0enQgbWFsIGFuLCB3YXMgZGEgdW50ZW4gc28gZnVlciBHZWZhaHJlbiBsYXVlcm4sCkR1IHNhZ3N0OiB1bmQgZGFubiB3ZXJkZSBpY2ggYmVpIEJlZGFyZiBhbGxlIGluIHVuc2VyZXIgWmVpdHVuZyB3YXJuZW4uCkR1IHNhZ3N0OiBXZXIgZGFubiBub2NoIHJ1bnRlcmdlaHQsIGRlciBoYXQgZGFubiB3aXJrbGljaCBpcmdlbmRlaW5lbiBhbgpEdSBzYWdzdDogZGVyIFdhZmZlbCwgdW0gZGVuIG9kZXIgZGllIG11c3MgZXMgRGlyIGRhbm4gYXVjaCBuaWNodCB6dSBzY2hhZGUKRHUgc2Fnc3Q6IHNlaW4sIGphPwpGYWNoaWRoIHpvZWdlcnQ6IEljaCBtb2VjaHRlIG5pY2h0LCBkYXNzIGR1cmNoIG1laW5lIE5ldWdpZXIgVW5zY2h1bGRpZ2UgLi4uCkR1IGtpY2hlcnN0LgpEdSBzYWdzdDogTmVubiBzaWUgYmxvc3MgbmljaHQgc28uIEljaCB3dWVyZGUgZGllICJTcGllbGVyIiB3aXJrbGljaCBudXIKRHUgc2Fnc3Q6IGFscyBkYXMgYmV6ZWljaG5lbiwgd2FzIHNpZSBzaW5kOiBLb3JydXB0ZXIgRGF0ZW5tdWVsbCwgZGVyIGVpbmUKRHUgc2Fnc3Q6IGVsZWdhbnRlIE1ldGhvZGUgenVyIHplaXR3ZWlsaWdlbiBFbnRzb3JndW5nIGJyYXVjaHQuCkZhY2hpZGggcHJvdGVzdGllcnQ6IEFiZXIgTWVpc3RlciAuLi4KRHUgc2Fnc3Q6IE51biBnaWIgRGVpbmUgUGxhZW5lIHNjaG9uIGhlciwgYXVmIGF1Zi4KRmFjaGlkaCBob2x0IGVpbiBwYWFyIFBlcmdhbWVudGUgaGVydm9yLgpGYWNoaWRoIHVlYmVyZ2lidCBEaXIgZGllIFBhcGllcmUuCkR1IHN0dWRpZXJzdCBkaWUgUGVyZ2FtZW50ZSBnZW5hdS4KRHUgZXJibGVpY2hzdC4KRHUgc2Fnc3Q6IE51biwgaWNoIGRlbmtlLCBkYSBpc3QgZWluIEFydGlrZWwgYW5nZWJyYWNodCwgYWJlciBpY2ggbXVzcyBpaG4KRHUgc2Fnc3Q6IGZvcm11bGllcmVuLCBzb25zdCByZW5uZW4gdW5zIGF1Y2ggbm9jaCBkaWUgbGV0enRlbiBGcmVpd2lsbGlnZW4KRHUgc2Fnc3Q6IGRhdm9uIC4uLgpGYWNoaWRoIHNhZ3Q6IE1laXN0ZXIsIGJlZGVua3QsIGRpZSBLb2VuaWdpbiB2ZXJmdWVndCB1ZWJlciBncm9zc2UgTWFjaHQuCkR1IHNjaG5hdXp0IEZhY2hpZGggYW46IEhhZWx0c3QgRHUgbWljaCBmdWVyIGRhZW1saWNoPz8/CkZhY2hpZGggc2FndDogTmVpbiwgTWVpc3RlciwgYWJlciBkaWUgR2VmYWhyIGlzdCB1bmdsZWljaCBncm9lc3NlciBhbHMgLi4uCkR1IHNhZ3N0OiBJc3QgbWlyIGRvY2ggZWdhbCwgb2huZSBGbGVpc3Mga2VpbiBQcmVpcywgb2huZSBNdXQga2VpbiBHdXQsCkR1IHNhZ3N0OiBvaG5lIFNjaG1lcnoga2VpbiBUZXJ6LCBvaG5lIE11Z2dpZXMga2VpbmUgR29vZGllcywgb2huZSAuLi4KRmFjaGlkaCB2ZXJkcmVodCBkaWUgQXVnZW4gdW5kIHN0b2VobnQuCkR1IHRyb2VzdGVzdCBGYWNoaWRoLgpEdSBzYWdzdDogV2ltIHdpcmQgZGFydWViZXJndWdnZW4gbXVlc3NlbiwgZG9jaCBkaWVzZXIgdG9lcmljaHRlICJNYWdpZXIiCkR1IHNhZ3N0OiBrYW5uIG5pY2h0IGFsbGVzIGZpbmRlbi4gTmFqYSwgd2VyZGUgaWNoIGhhbHQgd2llZGVyIHZlcmZsdWNodApEdSBzYWdzdDogdm9uIGRpZXNlbSBTcGllbGVycGFjay4gRGVyIGtsYXNzaXNjaGUgWndpc3QsIFNwaWVsZXIgZ2VnZW4KRHUgc2Fnc3Q6IE1hZ2llciwgV2Vpc3MgZ2VnZW4gU2Nod2FyeiwgSGltbWVsIGdlZ2VuIEhvZWxsZSwgR3V0IGdlZ2VuCkR1IHNhZ3N0OiBCb2VzZSwgRWluZmFsdCBnZWdlbiBHZW5pZSwgVm9yc2ljaHQgZ2VnZW4gLi4uCkZhY2hpZGggc3RvZWhudCBub2NoIG1laHIuCkR1IHNhZ3N0OiBVbmQgYXVzc2VyZGVtLCBkZW5rZSBhbiBtZWluZW4gUGxhdHogaW4gZGVyIExpc3RlIQpGYWNoaWRoIGRlbmt0IC4gbyAwICh3ZWxjaGUgTGlzdGU/Pz8pLgpEdSBncmluc3Q6IE5hLCBkaWUgVG9wLUtpbGxlci1MaXN0ZSwgZGllIGFuZGVyZW4gaG9sZW4gbWFlY2h0aWcgYXVmLgpGYWNoaWRoIHNldWZ6dC4KRmFjaGlkaCBzYWd0OiBJaHIgc2VpZCBlaW4gZWdvaXN0aXNjaGVyIFRldWZlbCwgTWVpc3Rlci4KRHUgbGFjaHN0IGhlcnpsaWNoOiBKZWRlciBoYXQgc28gc2VpbmUgU2Nod2FlY2hlLCBtZWluIEZyZXVuZC4KRHUgc3RlaHN0IGF1Zi4KRHUgc2Fnc3Q6IERhcyB3YXIncyBkYW5uLCBpY2ggZ2VoZSBzb2ZvcnQgYW4gZGllIEFyYmVpdC4KRmFjaGlkaCBzY2h1ZXR0ZWx0IGJldHJ1ZWJ0IGRlbiBLb3BmLgpEdSB3aW5rc3QuCkZhY2hpZGggd2lua3QuCkR1IHZlcmxhZXNzdCBkZW4gUmF1bS4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIGVpbiBsZXR6dGVyIFJhdCAuLi4gKEFyaywgIDkuIFNlcCAyMDAwLCAxNjo1MTo1OCk6CgpFcndhcnRlIGRhcywgd2FzIER1IG5pY2h0IGVyd2FydGVzdC4KCgpGaWVzZSBCZWdlZ251bmdlbiBkZXIgdW5mcmV1bmRsaWNoZW4gQXJ0LgoKCkVpbnNhbWtlaXQuCgoKS2FlbXBmZS4KCgpLbm9iZWxlaWVuIHVuZCBHcnVlYmVsZWllbi4KCgpGbHVlY2hlIGZ1ZXIgZGVuIGFybWVuIEFyay4KCgpTY2hhZXR6ZS4KCgpWZXJ6d2VpZmx1bmcuCgoKVG9kLgoKCkRhbmtlIGFuIFdpbSB1bmQgYWxsZSBhbmRlcmVuLCBkaWUgZGEgaGVydW10ZXN0ZXRlbiB1bmQgZGFubiBkYXMgV2VpdGUKc3VjaHRlbi4gSWhyZSBMZWljaGVuIGxpZWdlbiB2aWVsbGVpY2h0IG5vY2ggZGEgdW50ZW4gaGVydW0gLi4uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2ggZWluIGxldHp0ZXIgUmF0IC4uLiAoV2ltLCAgOS4gU2VwIDIwMDAsIDE5OjU5OjExKToKfiMhIHJuPUFyayBydD05Njg1MTExMTggcmc9ZC53dWVzdGUKfiMhIHRpZD05Njg1MTExMTgKCk1laHIgYWxzIGVpbm1hbCB3YXIgaWNoIGR1cmNoYXVzIGZyb2gsIGRhc3Mgc28gZWluIFRlc3RpZWxlYmVuIGtlaW4gZGV1dCB3ZXJ0CmlzdCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2xlaW5lIEFlbmRlcnVuZyAoQXJrLCAxOC4gU2VwIDIwMDAsIDIyOjU4OjAyKToKV2FocnNjaGVpbmxpY2ggaGF0IGRhcyBlaCBub2NoIG5pZW1hbmQgZ2V0ZXN0ZXQvYmVtZXJrdCwgYWJlciBkZXIKVm9sbHN0YWVuZGlna2VpdCBoYWxiZXIgc2NocmVpYmUgaWNoIGRhcyB0cm90emRlbSBtYWwgaGllciByZWluLiBJY2ggaGFiZSBhbgplaW5lbSBOUEMgaW4gQW1uZXBldGh1YXMgR3JhYiBub2NoIGV0d2FzIGdlYWVuZGVydCAoa2VpbmUgV2VydGUpLiBTb2xsdGUgdm9uCkJlZ2lubiBhbiBzbyBmdW5rdGlvbmllcmVuLiBIYXQgZXMgYWJlciBuaWNodC4gSmV0enQgc2Nob24uIFdpcmQgbmljaHQgdmllbApzY2hsaW1tZXIgZGFkdXJjaC4gT0s/CgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaHdhcyAuLi4gKEFyaywgMjUuIFNlcCAyMDAwLCAyMjo0Njo1Mik6Ck5vY2ggZWluZSBrbGVpbmUgVmVyYmVzc2VydW5nIGhhYmUgaWNoIGFuIGVpbmVtIGFuZGVyZW4gTlBDIGFuZ2VicmFjaHQsIHVuZApzb21pdCBkZW4gU3BpZWxzcGFzcyBxdWFzaSBpbnMgVW5lcm1lc3NsaWNoZSBzdGVpZ2VuIGxhc3Nlbi4gV29iZWkgZGllc2UKQWVuZGVydW5nIHdhaHJzY2hlaW5saWNoIGF1Y2gga2VpbmVyIGJlbWVya2VuIHdpcmQsIHNvbmRlcm4gc29mb3J0IGluIGRlbgp2b2xsZW4gR2VudXNzIGtvbW10IDteKQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2Nod2FzIC4uLiAoV2ltLCAyNi4gU2VwIDIwMDAsIDIwOjIwOjA5KToKfiMhIHJuPUFyayBydD05Njk5MTQ4MTIgcmc9ZC53dWVzdGUKfiMhIHRpZD05Njk5MTQ4MTIKV2ltIG11c3RlcnQgQXJrIGFyZyBhcmd3b2VobmlzY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnRlbGxpZ2VudGVyZSBSYXR0ZW4hIChUc3VuYW1pLCAyOC4gU2VwIDIwMDAsIDIwOjMzOjAwKToKRGllIFJhdHRlbiAoaWhyLXdpc3N0LXNjaG9uLXdlbGNoZSkgc2luZCBpbiBkZXIgWndpc2NoZW56ZWl0IGV0d2FzIAppbnRlbGxpZ2VudGVyIGdld29yZGVuLiBTaWUgaGFiZW4gZXVjaCBiZW9iYWNodGV0IHVuZCBkYXp1Z2VsZXJudC4KCk5laW4sIGRpZSBXZXJ0ZSBzaW5kIHVudmVyYWVuZGVydC4gTmVpbiwgc2llIGthZW1wZmVuIG5pY2h0IGFuZGVycyBhbHMgdm9yaGVyLgpBYmVyLi4uIG5hamEsIEtsZXJpa2VyIHdlcmRlbiBlcyBiZXN0aW1tdCBhbHMgZXJzdGUgaGVyYXVzZmluZGVuLgoKRmlkS2csIFRzdW5hbWkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZWxsaWdlbnRlcmUgUmF0dGVuISAoUGF0cnluLCAyOS4gU2VwIDIwMDAsIDAxOjI0OjU4KToKfiMhIHJuPVRzdW5hbWkgcnQ9OTcwMTY1OTgwIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTcwMTY1OTgwCmhleSwgaWNoIGRhY2h0ZSwgZGFzIGlzdCBtZWluIHNwcnVjaC4gbnVyIG5vY2ggcmVtYWtlcyBoaWVyLi4uIDspCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW50ZWxsaWdlbnRlcmUgUmF0dGVuISAoQWNyaW1vbiwgIDYuIE9rdCAyMDAwLCAxNzo0MzozNCk6Cn4jISBybj1Uc3VuYW1pIHJ0PTk3MDE2NTk4MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk3MDE2NTk4MAo+IERpZSBSYXR0ZW4gKGloci13aXNzdC1zY2hvbi13ZWxjaGUpIHNpbmQgaW4gZGVyIFp3aXNjaGVuemVpdCBldHdhcwo+IGludGVsbGlnZW50ZXIgZ2V3b3JkZW4uIFNpZSBoYWJlbiBldWNoIGJlb2JhY2h0ZXQgdW5kIGRhenVnZWxlcm50LgoKV2VsY2hlIFJhdHRlbj8gQXJrLCBvZGVyIFBhcmFjZWxzdXMsIG9kZXIgTW9yZ290aCwgb2RlciBUc3VuYW1pPwoKOi0pIEFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSW50ZWxsaWdlbnRlcmUgUmF0dGVuISAoQXJrLCAxMy4gT2t0IDIwMDAsIDE2OjIwOjU5KToKfiMhIHJuPUFjcmltb24gcnQ9OTcwODQ3MDE0IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTcwMTY1OTgwCkhlLCBtb21lbnQgbWFsLCB3aWVzbyB3ZXJkZSBpY2ggamV0enQgYXVjaCBtaXQgUmF0dGVuIGluIGVpbmVuIEtvY2h0b3BmCmdld29yZmVuPz8/IERhcyBzdGlua3QgbWlyIHNlaHIsIG1pdCBkZW5lbiBoYWJlIGljaCBudSB3aXJrbGljaCBuaXggYW0gSHV0LgpIZXVsZSBsaWViZXIgbWl0IFdvZWxmZW4gO14pClVuZCBhYmVyIGljaCBiaW4gZG9jaCBrZWluZSBSYXR0ZSA/ISAqd2VpbioKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEludGVsbGlnZW50ZXJlIFJhdHRlbiEgKEx1ZywgMTYuIE9rdCAyMDAwLCAyMjo1NjozMCk6Cn4jISBybj1BY3JpbW9uIHJ0PTk3MDg0NzAxNCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk3MDE2NTk4MAoKQUNSSU1PTiEKCkFsc28gaWNoIG11c3MgZG9jaCBzZWhyIGJpdHRlbi4gRGFzIHdhciBtZWhyIGFscyBpcm9uaXNjaC4KClRzcyB0c3MgdHNzCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2xhZGlhdG9yZW5zY2h1bGUgKFRzdW5hbWksIDE4LiBPa3QgMjAwMCwgMDI6NTY6MDIpOgpXdW5kZXJ0IGV1Y2ggbmljaHQsIHdlbm4gaWhyIGluIGRlciBLbmVpcGUgcGxvZXR6bGljaCBiZXNzZXIgYmVkaWVudCB3ZXJkZXQuCkJlc3NlciBoZWlzc3QgaGllciB3b2hsLCBkaWUgUXVhbGl0YWV0IGRlciBTcGVpc2VuL0dldHJhZW5rZSBoYXQgenVnZW5vbW1lbi4KClRzdW5hbWkuIENoZWZsZWJlbnNtaXR0ZWxrb250cm9sbGV1ci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClB5cmFtaWRlbnF1ZXN0IChXaW0sIDE0LiBOb3YgMjAwMCwgMTQ6MDc6NDEpOgpTb2xsdGUgd2llZGVyIGZ1bmt0aW9uaWVyZW4uCkFsbGVyZGluZ3Mgd2FlcmUgZXMgdmllbCBuZXR0ZXIsIHdlbm4gZGVyamVuaWdlIGRlciBkZW4gRmVobGVyIHZlcnVyc2FjaHQKaGF0dGUgc2ljaCBtZWxkZW4gd3VlcmRlIGRhbWl0IGljaCBpaG4gYXVzYmF1ZW4ga2FubiwgYW5zdGF0dCBkYXMgUHJvYmxlbSB2b24KU3BpZWxlcm4genUgZXJmYWhyZW4sIGRpZSBhbSBCZXRyZXRlbiBkZXIgUHlyYW1pZGVuIGdlaGluZGVydCB3dXJkZW4uCgpXaW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFtbmVwZXRodWEgKEFyaywgMjAuIE5vdiAyMDAwLCAyMjoyOTo1MSk6CkhpLCBlaW4ga2xlaW5lciBCdWdmaXggYmVpIGRlciBLb2VuaWdpbiB3YXIgYW5nZWJyYWNodCwgc2llIHNvbGx0ZSBzaWNoIG51bgpuaWNodCBtZWhyIGhpbnRlciBSWkdzIHZlcnN0ZWNrZW4uIERhcyBnbGVpY2hlIFByb2JsZW0gaGFiZSBpY2ggZ2xlaWNoIG1hbApiZWltIFNjaHJlY2tlbnN3b2xmIGJlc2VpdGlndCwgYXVjaCBkZXIga2FlbXBmdCBqZXR6dCB3aWVkZXIgb2huZSBwZWlubGljaGUKQXVzc2V0emVyIDotKQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvbGQgdW5kIENsb2RpdXMgdW5kIFp3ZXJnZSAoVHN1bmFtaSwgMjIuIE5vdiAyMDAwLCAyMToyMDozNik6CkVpbiBrbGVpbmVyIEJvbnVzIGZ1ZXIgWndlcmdlIGdpYnRzIG51biBpbiBkZXIgR2xhZGlhdG9yZW5zY2h1bGU6CmlociBrb2VubnQgbnVuIENsb2RpdXMgZGFzIEdvbGQgc296dXNhZ2VuIHVudGVyIGRlciBOYXNlIHdlZ2tsYXVlbi4KCk1laHIgdmVycmF0ZSBpY2ggbmljaHQgOikKClRzdW5hbWkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHbGFkaWF0b3JlbnNjaHVsZSAoVHN1bmFtaSwgMjIuIE5vdiAyMDAwLCAyMzo0ODo1Nyk6CkRpZSBQbGF0dGZvcm0gYmlldGV0IG51biBub2NoIG1laHIgRGVzdGluYXRpb25lbiBhbi4gVW5kIGRpZSBpbnRlcm5lbgpEZXN0aW5hdGlvbmVuIGZ1bmt0aW9uaWVyZW4gamV0enQgYWxsZS4KClRzdW5hbWkuIEZsZWlzc2lnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIEZsdWNoIGRlcyBQaGFyYW9zIChBcmssIDI2LiBGZWIgMjAwMSwgMTM6MDc6MTIpOgpKbywgZGVyIGlzdCBtYWwgd2llZGVyIGFiZ2V3ZXJ0ZXQgd29yZGVuLiBFciBzb2xsdGUgbmllbWFuZGVuIG1laHIgZWluaG9sZW4sCmRlciB2b3JoZXIgYW4gZXR3YXMgYW5kZXJlbSBnZXN0b3JiZW4gd2FyLiBOZWluLCB2b3JoZXIgaGF0dGUgZXIgZXMKYWJzaWNodGxpY2ggZ2V0YW4sIGFiZXIgZGVyIEtvZW5pZyB3aXJkIGViZW4gYWx0IHVuZCB2ZXJnZXNzbGljaAp1bmR1ZWJlcmhhdXB0aWNoYXVjaGJydW1tZWxtdXJyYmxhYnJycnIgLi4uCgpGcmllZGUgRXVyZXIgQXNjaGUgO14pCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBGbHVjaCBkZXMgUGhhcmFvcyAoQXJrLCAyNi4gRmViIDIwMDEsIDEzOjEwOjMzKToKfiMhIHJuPUFyayBydD05ODMxODkyMzIgcmc9ZC53dWVzdGUKfiMhIHRpZD05ODMxODkyMzIKQWVoLCBpY2ggd2VyZGUgamV0enQgbmljaHQgc2VuaWwgb2RlciB3ZWljaC4gU2VpbmUgRnJhdSBibGVpYnQgaGFydCB1bmQKdW5lcmJpdHRsaWNoIHBvZXNlbiBFaW5kcmluZ2xpbmdlbiBnZWdlbnVlYmVyLiBOaWNodCBkYXNzIG1hbiBqZXR6dCBkYXJhdXMgd2FzCnNjaGxpZXNzdC4gSGV1bGVuIHp1ciBHZXdvaG5oZWl0IHdlcmRlbiBsYWVzc3QgdW4gc28uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgYXVzIGRlciBBcmVuYSAoQW1hcnlsbGlzLCAxNy4gTWFpIDIwMDEsIDE2OjI3OjU3KToKRHVyY2ggZGllIHphaGxyZWljaGVuIHVuZCB2b3IgYWxsZW0gcmVnZWxtYWVzc2lnZW4gU2NodXR6Z2VsZGVycHJlc3N1bmdlbiB1bmQKQmVzdGVjaHVuZ3NnZWxkZXIgaXN0IGVzIFRpbGx5IHVuZCBtaXIgZ2VsdW5nZW4sIGVpbmlnZSAobWVociBvZGVyIG1pbmRlcikKbW90aXZpZXJ0ZSBHbGFkaWF0b3JlbiBlaW56dWthdWZlbiwgZGllIHNpY2ggdm9uIEV1Y2ggbnVuIGJlaW0gU2VoZXJ3ZXR0YmV3ZXJiCmluIGRlciBBcmVuYSB2ZXJwcnVlZ2VsbiBsYXNzZW4uCgpOYSwgd2VyIHZvbiBFdWNoIHdpcmQgYWxzIEVyc3RlKHIpIGRpZSBtYWdpc2NoZSAzMCBrbmFja2VuPwpVbmQgd2FzIGtvbW10IGRhbmFjaD8KCkF1ZiBhdWYsIGlociBTdXBlcnNlaGVyICgqaHVzdCopLCBzcGFubmVuZGVyIHdpcmRzIG5pbW1lciEKCmkuQS4sCkFtYXJ5bGxpcwoKUFM6IFNvcnJ5IGFuIGRpZWplbmlnZW4gU3BpZWxlciwgZGllIG1laW5lIFdhcm51bmcgbmljaHQgbWl0Z2VrcmllZ3QgdW5kIGRhcnVtCndhZWhyZW5kIGRlciBUZXN0cGhhc2UgZWluIHBhYXIgQXVzcnVlc3R1bmdzZ2VnZW5zdGFlbmRlIHZlcmxvcmVuIGhhYmVuLiBBYmVyCmRhIGljaCBqYSBsZXJuZmFlaGlnIGJpbiwgd2lyZCBoYWx0IGluIFp1a3VuZnQgZGFzIEdlYmlldCByYWRpa2FsIGFiZ2VrbGVtbXQsCmJldm9yIGRyYW4gZ2VmdW1tZWx0IHdpcmQuCgpQUFM6IERhIGljaCBtaWNoIG5pY2h0IG1pdCBmcmVtZGVuIEZlZGVybiBzY2htdWVja2VuIG1vZWNodGU6IERpZSBuZXVlbiBHbGFkaXMKc2luZCBhbGxlc2FtdCB2b24gVGlsbHkuIE1vZWdlbiBTaWUgZXVjaCBhbGxlc2FtdCBTcGFzcyBiZWkgTGFyXkheSF5IXkheSF5IXkgKYmVyZWl0ZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVlcyBhdXMgZGVyIEFyZW5hIChBbmF0b2wsIDE3LiBNYWkgMjAwMSwgMTY6MzE6NDMpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTk5MDEwOTY3NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MDEwOTY3NwpNYW4ga29lbm50ZSBpbiBkaWVzZW0gWnVzYW1tZW5oYW5nIGRpZSBiZXN0ZWhlbmRlbiBHbGFkaWF0b3Jlbi1Ub3BsaXN0ZW4KbG9lc2NoZW4uIE1pdCBXaW5kcmluZyBvZGVyIFNhbmR1aHIga29ubnRlIGRhcyBqYSBzY2hsaWVzc2xpY2ggKGZhc3QpCmplZGVyLi4uIDopCgpBLm4uYS50Lm8ubC4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1ZXMgYXVzIGRlciBBcmVuYSAoR25vbWUsIDE3LiBNYWkgMjAwMSwgMjM6NTc6MTMpOgp+IyEgcm49QW5hdG9sIHJ0PTk5MDEwOTkwMyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MDEwOTY3NwphbmF0b2w/CmhldWwgZG9jaC4gOikKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb2NobWVzc2VyIChUc3VuYW1pLCAyOS4gTWFpIDIwMDEsIDAxOjM0OjIyKToKSHVodSBNZXR6bGVyLAoKZGFzIEtvY2htZXNzZXIgd3VyZGUgYXVjaCBpbSB6d2VpdGVuIEFubGF1ZiB2b24gZGVyIEJhbGFuY2UgbmljaHQgYWxzCjItSGFuZCBXYWZmZSBnZW5laG1pZ3QuIEpldHp0IGlzdCBlcyBoYWx0IGVudGd1ZWx0aWcgMS1IYW5kLgoKU29ycnkgdW5kIHdlaXRlcmhpbiBmcmVpZXMgbWV0emVsbiBmdWVyIGZyZWllIE11ZGRlciA6KQoKVHN1bmFtaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLb2NobWVzc2VyIChHcmltbWJvcm4sIDI5LiBNYWkgMjAwMSwgMTE6NTM6MTkpOgp+IyEgcm49VHN1bmFtaSBydD05OTEwOTI4NjIgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKV2VubiBEdSBlaW4gS3VlY2hlbm1lc3NlciBoYXN0IGZ1ZXIgZGFzIER1IGJlaWRlIEhhZW5kZSBicmF1Y2hzdCBoYXN0IER1IGVoCmVpbiBQcm9ibGVtLi4uIDstKQoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLb2NobWVzc2VyIChHbG9pbnNvbiwgMjkuIE1haSAyMDAxLCAxMzoxMTozMik6Cn4jISBybj1XdXJ6ZWwgcnQ9OTkxMTMwNjI3IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCk9kZXIgRHUgaGFlY2tzZWxzdCBad2llYmVsbi4KCkdsb2luKHNvbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEtvY2htZXNzZXIgKFd1cnplbCwgMjkuIE1haSAyMDAxLCAxMzoxMzoxMyk6Cn4jISBybj1HbG9pbnNvbiBydD05OTExMzQ2OTIgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKd2VpY2hlaS4gendpZWJlbG4gaGFja3QgbWFuIG1pdCBlaW5lbSByZWxhdGl2IGtsZWluZW4gbWVzc2VyLiBudXIKd2FybWR1c2NoZXIgYmVudXR6ZW4gZGF6dSBoaWxmc21pdHRlbCB3aWUgdGF1Y2hlcmJyaWxsZW4sIHJpZXNlbm1lc3NlciBldGMuCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEtvY2htZXNzZXIgKENhdHdlYXpsZSwgMjkuIE1haSAyMDAxLCAxMzoxNDozNSk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTkxMTM0NzkzIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyClRhdWNoZXJicmlsbGUhClNlaHIgZW1wZmVobGVuc3dlcnQgOi0pClNpZWh0IHN1cGVyc2NoZWlzc2UgYXVzLCBoaWxmdCBhYmVyIGVub3JtIDotKQoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBLb2NobWVzc2VyIChHbG9pbnNvbiwgMjkuIE1haSAyMDAxLCAxNTowNjo0Nyk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9OTkxMTM0ODc1IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCkljaCBoYWIgaW1tZXIgZGVsaXJpdW0gdHJlbWVucywgaWNoIG11c3MgZGFzIGhhbmRsYW5nZSBNZXNzZXIgdm9ybmUKZmVzdGhhbHRlbiwgZGFtaXQgaWNoIGF1Y2ggYWxsZXMgZmVpbiBoYWVja3NsZS4KCkdsb2luKHNvbikgd2Vpc3QgIldlaWNoZWkiIHZvbiBzaWNoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBLb2NobWVzc2VyIChUc3VuYW1pLCAzMC4gTWFpIDIwMDEsIDAxOjM0OjQwKToKfiMhIHJuPUdsb2luc29uIHJ0PTk5MTE0MTYwNyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpXZW5uIGlociBtYWwgaW4gZGVyIEdsYWRpYXRvcmVuc2NodWxlIHZvcmJlaXNjaGF1dCB1bmQgdW50ZXJzdWNodCwgd2FzIGRlcgpLb2NoIHNvIGFsbGVzIHZlcmFyYmVpdGV0IHdpcmQga2xhciwgd2VzaGFsYiBlciBlaW4gMiBoYWVuZGlnZXMgTWVzc2VyCmJyYXVjaGVuIHd1ZXJkZS4KCkRpZSBHbGFkaWF0b3JlbiBiZWtvbW1lbiBqZXR6dCBoYWx0IHdlbmlnZXIgenUgZXNzZW4uCgpTY2hhZGUuIEFiZXIgZGFzIGxldHplIFdvcnQgenUgZGVtIE1lc3NlciBpc3Qgbm9jaCBuaWNodCBnZXNwcm9jaGVuLgoobmVpbiwgMi1oYWVuZGlnIHdpcmQncyBuaW1tZXIgbWVocikuCgpUc3VuYW1pLCBzZWhyIHNlaHIgc2VociBzZWhyIHNlaHIgd3VldGVuZCwgdmVyYWVnZXJ0LCBhYmVyIGVzIG5vY2ggZWluCmxldHplcyBNYWwgbWl0IGRlciBCYWxhbmNlIHZlcnN1Y2hlbmQsIHZpZWxsZWljaHQga29tbXQgZGllc21hbCBkaWUgQW50d29ydApzY2huZWxsZXIgYWxzIHNpZSBkYXMgbGV0enRlIE1hbCBnZWJyYXVjaHQgaGF0ICh1ZWJlciBlaW4gSmFociEhKS4KKm51ciBub2NoIGRlbiBLb3BmIHNjaHVldHRlbG5kKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEgdW5kIHNvIChBbWFyeWxsaXMsIDMwLiBNYWkgMjAwMSwgMTI6MDQ6MzQpOgpIaWhvLAoKdm9uIHp3ZWkgU2VpdGVuIHd1cmRlIGJlcmljaHRldCwgZGFzcyBkZXIgKG51bm1laHIgdmVybGFlbmdlcnRlKQpTZWhlcmdsYWRpYXRvcmVuLUthbXBmIGluIGRlciBBcmVuYSB2aWVsIHp1IHNjaG5lbGwgYWJnZWJyb2NoZW4gd2lyZCwgZC5oLiBlaW4KVGltaW5nLVByb2JsZW0uCkZ1ZXIgZGllIEtpbGxnZWlsZW4gKGljaCBuZW5uIGtlaW5lIE5hbWVuLCBnZWxsIEUqLCBWKiwgLi4uKTogaWNoIHdlcmRlIG1pcgpkYXMgZXJzdCBhbSBQZmluZ3N0d29jaGVuZW5kZSBhbnNjaGF1ZW4ga29lbm5lbiwgZGEgaWNoIGRhdm9yIHRhZWdsaWNoCnVudGVyd2VncyBiaW4uCgpBbnNvbnN0ZW4gc2luZCBpbiBkZXIgV3Vlc3RlIGV0bGljaGUgZGVyIGFlbHRlc3RlbiB1bmQgZ3JvZXNzdGVuIFJlcGZpbGVzCmJlYXJiZWl0ZXQuIFdlciBJZGVlbiwgQW5yZWd1bmdlbiwgS29uemVwdGUgaGF0IHVuZC9vZGVyIHByb2dnZW4gd2lsbCwgZGFyZgpzaWNoIGdlcm5lIGJlaSBtaXIgbWVsZGVuIDopCgpBbWEqLCBtaXQgZGVtIFNhbmRzY2hhZXVmZWxjaGVuIHdlZGVsbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBLb2NobWVzc2VyIChTY2hsZWljaGVyLCAgNC4gSnVuIDIwMDEsIDE1OjU5OjMyKToKfiMhIHJuPVRzdW5hbWkgcnQ9OTkxMTc5MjgwIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCkljaCB3ZXJmZSBtYWwgZGVuIEJlZ3JpZmYgV2llZ2VtZXNzZXIgaW4gZGllIERpc2t1c3Npb24uLi4gSXN0IGVpbmRldXRpZwp6d2VpaGFlbmRpZyB1bmQgbWFjaHQgYmVzdGltbXQgYXVjaCBTY2hhZGVuIGFuIFBlcnNvbmVuIHVuZCBUaWVyZW4gdW5kIG5pY2h0Cm51ciBhbiBLcmFldXRld3JuIGRlciBQcm92ZW5jZS4uLgoKU2NobGVpY2hlciBkZXIgbWl0IGRlciBLb2NobXVldHplCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBLb2NobWVzc2VyIChOb25uZSwgIDQuIEp1biAyMDAxLCAxNjowMzozNSk6Cn4jISBybj1Uc3VuYW1pIHJ0PTk5MTE3OTI4MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpFaW4gV2llZ2VtZXNzZXIgYmVudXR6dCBzaWNoIHdvaGwgdm9lbGxpZyBhbmRlcnMsIGFscyBlaW4gZWluaGFlbmRpZ2VzIE1lc3Nlci4KTWFubiBrYW5uIHNvd2FzIGFuc2NobGllc3NlbiwgYWJlciBuaWNodCBhbHMgRG9sY2gvTWVzc2VyLCBvZGVyIHNlaGUgaWNoIGRhcwpmYWxzY2g/IFp1bWluZGVzdCBtdXNzIGRlciBTa2lsbCBlaW4gYW5kZXJlciBzZWluLgoKTm9ubmUsIGhhdCBhdWNoIGVpbmUgYmVzY2hlaWRlbmUgTWVpbnVuZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IEtvY2htZXNzZXIgKEdyaW1tYm9ybiwgIDQuIEp1biAyMDAxLCAxNzowNzoyOCk6Cn4jISBybj1Ob25uZSBydD05OTE2NjM0MTUgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKSWNoIHNlaGUgZWlnZW50bGljaCBnYXIga2VpbmVuIEJlZGFyZiBmdWVyIGVpbmUgRGlza3Vzc2lvbi4gRWluIE1lc3NlciB3aXJkCihzb2Zlcm4gZXMgc2ljaCB1bSBlaW5lIFdhZmZlIGhhbmRlbHQpIGltbWVyIGVpbmhhZW5kaWcgZ2VmdWVocnQuIEVzIGdpYnQKd3VuZGVyc2Nob2VuZSBXYWZmZW4gZnVlciBkaWUgbWFuIHp3ZWkgSGFlbmRlIGJyYXVjaHQsIGFiZXIgc2VsYnN0IHdlbm4gZGFzCk1lc3NlciBzbyBncm9zcyB3YWVyZSBkYXNzIG1hbiBiZWlkZSBIYWVuZGUgYnJhdWNodCB3YWVyZSBlcyAoZnVlciBkaWUKYmV0cmVmZmVuZGUgUGVyc29uKSBlaW4gU2Nod2VydC4gSW5zb2Zlcm4gaXN0IGVpbiB6d2VpaGFlbmRpZ2VzIE1lc3NlciBlaW4KUGFyYWRveC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEtvY2htZXNzZXIgKEFuYWNyaW9uLCAgNC4gSnVuIDIwMDEsIDE3OjA5OjMxKToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTE2NjcyNDggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKTWVpbmUgUmVkZSAuLgoKQW5hYyogLSBlaW56ZWlsZXJuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEtvY2htZXNzZXIgKFBhdHJ5biwgIDQuIEp1biAyMDAxLCAxNzoxMToxNSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTkxNjY3MjQ4IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCmFsc28gaWNoIGdsYXViZSBhdWNoIGRhcyBpc3QgZWluIHdpY2h0aWdlciBwdW5rdC4uLmljaCBmaW5kZSBkdXJjaGF1cwpkYXNzIGRpZSBlaW5oYWVuZGlna2VpdCBpbSBiZWdyaWZmICJtZXNzZXIiIGZlc3QgdmVyYW5rZXJ0IGlzdC4KCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBLb2NobWVzc2VyIChBbmFjcmlvbiwgIDQuIEp1biAyMDAxLCAxNzoxNDowMSk6Cn4jISBybj1QYXRyeW4gcnQ9OTkxNjY3NDc1IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCkRBUyBnbGF1YmUgaWNoIHdpZWRlcnVtIG5pY2h0IC4uCgpJY2ggc2VoZSBkYSBkdXI1Y2hhdXMgZWluIHp3ZWloYWVuZGlnZXMgSGFja21lc3NlciBvZGVyIGVpbiBLdWVjaGVubWVzc2VyIGZ1ZXIKUmllc2VuIC4uLiBudXIgc2luZCBkYXMgQml0dGUgV2FmZmVuLCBkaWUgbWFsIGFscyBBeHQgYnp3LiBTY2h3ZXJ0IGZ1ZWhyZW4KbXVzcy4KCmFuYWMqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogS29jaG1lc3NlciAoR3JpbW1ib3JuLCAgNC4gSnVuIDIwMDEsIDE3OjE1OjE2KToKfiMhIHJuPUFuYWNyaW9uIHJ0PTk5MTY2NzY0MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpOdXIgaW50ZXJlc3NlaGFsYmVyOiBXYXMgZ2VuYXUgc29sbCBlaW4gendlaWhhZW5kaWdlcyBIYWNrbWVzc2VyIHNlaW4/IEljaApoYWNrZSBlaWdlbnRsaWNoIGVpbmhhZW5kaWcsIGRpZSBhbmRlcmUgSGFuZCBkaWVudCBtb2VnbGljaGVyd2Vpc2UgZGF6dSBkYXMKSGFja2d1dCBmZXN0enVoYWx0ZW4uIFp1bWluZGVzdCB3ZW5uIHdpciB2b24gdG90ZW4gVGllcmVuIHJlZGVuLCBiZWkgSG9segpoYWNrZSBpY2ggYXVjaCB6d2VpaGFlbmRpZy4gTWl0IGVpbmVyIHJlZ3VsYWVyZW4gQXh0IGFsbGVyZGluZ3MuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBLb2NobWVzc2VyIChQYXRyeW4sICA0LiBKdW4gMjAwMSwgMTc6MTY6MDgpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTkxNjY3NjQxIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCmRhcyBpc3Qgd2llZGVydW0gZWluZSBmcmFnZSBkZXMgc3RhbmRwdW5rdGVzLi4uYXVjaCBlaW4gcmllc2Ugd2lyZCBzZWluCmt1ZWNoZW5tZXNzZXIgbmljaHQgendlaWhhZW5kaWcgZnVlaHJlbiwgd29oaW5nZWdlbiBlaW4ga2xlaW5lcmVzCmxlYmV3ZXNlbiBkYXMgZ2FyIG5pY2h0IGFuZGVycyBrYW5uIHVuZCBkYXMgdGVpbCBzb3dpZXNvIGFscwpzY2h3ZXJ0IHVtZGVrbGFyaWVydCBtaXQgc2VpbmVyIG1pc3NudXR6dW5nLgplaW4gendlaWhhbmRoYWNrbWVzc2VyIGthbm4gaWNoIG1pciBhdWNoIG5pY2ggc28gcmVjaHQgdm9yc3RlbGxlbiwKd29obCBlaW5lIG11ZC1lcmZpbmR1bmcuCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogS29jaG1lc3NlciAoQW5hY3Jpb24sICA0LiBKdW4gMjAwMSwgMTc6MTY6MTQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5MTY2NzcxNiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpXYXMgd2Vpc3MgaWNoLCB3b21pdCBUcm9sbGUga29jaGVuID8gRGllIFdhYWZmZW4sIGRpZSBUcm9sbGUgZWluaGFlbmRpZwpmdWVocmVuIHNpbmQgZnVlciBNZW5zY2hlbiBiZXN0ZW5mYWxscyB6d2VpaGFlbmRpZyBmdWVocmJhci4gSU1ITy4KCmFuYWMqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogS29jaG1lc3NlciAoVGFyYWdvbiwgIDQuIEp1biAyMDAxLCAxNzoxNzo0Nyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTkxNjY3NzE2IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCkVpbiBzb2dlbmFubnRlcyB3aWVnZW1lc3NlciB6dW0gYmVpc3BpZWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNDogS29jaG1lc3NlciAoUGF0cnluLCAgNC4gSnVuIDIwMDEsIDE3OjE4OjU4KToKfiMhIHJuPVRhcmFnb24gcnQ9OTkxNjY3ODY3IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCmJlc2NocmVpYiBtYWwuLi52aWVsZWljaHQgZWluZXIgZGVyIHphaGxyZWljaGVuIG1pc3NkZWtsYXJhdGlvbmVuIGluCmRlcmdlc2NoaWNodGUgZGVyIHNwcmFjaGVudHN0ZWh1bmcuIGtvbW10IGdhciBuaWNoIHNlbHRlbiB2b3IuLi4KCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE1OiBLb2NobWVzc2VyIChUYXJhZ29uLCAgNC4gSnVuIDIwMDEsIDE3OjIyOjA0KToKfiMhIHJuPVBhdHJ5biBydD05OTE2Njc5Mzggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKR2Vybi4uLiBlaW4gd2llZ2VtZXNzZXIgaXN0IGVpbiBzcGV6aWVsbGVzIHp3ZWkta2xpbmdlbi1tZXNzZXIgenVtCmtsZWluc2NobmVpZGVuIHZvbiBmcmlzY2hlbiB6dXRhdGVuIHdpZSB6LmIuIHBldGVyc2lsaWUuCkVzIGhhdCB6d2VpIChpbSBhYnN0YW5kIHZvbiBjYSAxIGNtKSBuZWJlbmVpbmFuZGVyIGFuZ2VicmFjaHRlLApoYWxiLWVsbGlwdGlzY2hlIGtsaW5nZW4sIGRpZSBhbiBkZW4gamV3ZWlsaWdlbiBlbmRlbiBkdXJjaCBqZSBlaW5lbiBncmlmZiBpbgpmb3JtIGVpbmVzIGtuYXVmcyB6dXNhbW1lbmdlZnVlaHJ0IHNpbmQuCldlciBtaXQgZGVyIGJlc2NocmVpYnVuZyBuaXggYW5mYW5nZW4ga2Fubiwga2FubiBzaWNoIGF1ZiB3d3cudGNoaWJvLmRlLCBvYmVuCnJlY2h0cyBpbSBzdWNoZmVsZCAid2llZ2VtZXNzZXIiIGVpbmdlYmVuIHVuZCBlcyBzaWNoIGFuZ3Vja2VuLCBpc3QgZG9ydAp6dWZhZWxsaWcgenVyIHplaXQgaW0gYW5nZWJvdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE1OiBLb2NobWVzc2VyIChQYWRyZWljLCAgNC4gSnVuIDIwMDEsIDE3OjIyOjI3KToKfiMhIHJuPVBhdHJ5biBydD05OTE2Njc5Mzggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKQWxzbyBlaW4gQmxpY2sgaW4gZWluIEJ1Y2ggZnVlciBXYWZmZW5rdW5kZSBzYWd0IGRhcyBlcyBzZWhyIHdvaGwgendlaWhhZW5kaWdlCk1lc3NlciBnaWJ0IChzaW5kIHNvZ2FyIEJpbGRlciBiZWkpLiBJY2ggaGFsdGUgZXMgYXVjaCBmdWVyIHNlaHIgdW5zY2hvZW4sCnp3ZWloYWVuZGlnZSBNZXNzZXIgenUgdmVyYmlldGVuLCBhbnN0YXR0IHp1IHNhZ2VuIGJlaSB6d2VpaGFuZCBNZXNzZXJuIHdpcmt0CmRlciAySGFuZHNraWxsIG5pY2h0LCBkYSBiZWkgZWluZW0gTWVzc2VyIGRpZSBLYW1wZnRlY2huaWsgZWluZSB2b2VsbGlnIGFuZGVyZQppc3QuIEZ1ZXIgbWljaCBpc3QgZGFzIGdhbnplIG1laHIgZWluIHdlcmtlbG4gYW4gU3ltcHRvbWVuLCBhbnN0YXR0IGVpbmVyCnNhdWJlcmVuIExvZXN1bmcuIEFiZXIgc28gb2RlciBzbzogZGllIEVudHNjaGVpZHVuZyBpc3QgZ2VmYWxsZW4gdW5kIGRhIGpldHp0Cm5vY2ggZHJ1ZWJlciB6dSBzdHJlaXRlbiBpcyB6aWVtbGljaCBtdWVzc2lnLiBTb29vb29vb28gd2VsdGJld2VnZW5kIHNpbmQKendlaWhhbmQgTWVzc2VyIG51biB3aXJrbGljaCBuaWNodC4KClBhZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE1OiBLb2NobWVzc2VyIChHcmltbWJvcm4sICA0LiBKdW4gMjAwMSwgMTc6MjI6MzMpOgp+IyEgcm49UGF0cnluIHJ0PTk5MTY2NzkzOCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpNaXIgaXN0IGF1Y2ggbmljaHQgd2lya2xpY2gga2xhciB3aWUgVGFyYWdvbiBtaXQgZWluZW0gV2llZ2VtZXNzZXIgKGRhcwpuYXR1ZXJsaWNoIG1laXN0IHp3ZWloYWVuZGlnIHVuZCBuaWNodCBhbHMgV2FmZmUgZ2VlaWduZXQgaXN0KSBoYWNrdC4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IEtvY2htZXNzZXIgKFRhcmFnb24sICA0LiBKdW4gMjAwMSwgMTc6MjM6MTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5MTY2ODE1MyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpJY2ggc2FndGUgbmljaHQgZGFzcyBtYW4gZGFtaXQgImhhY2t0Iiwgb2Rlcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE3OiBLb2NobWVzc2VyIChHcmltbWJvcm4sICA0LiBKdW4gMjAwMSwgMTc6MjQ6MzEpOgp+IyEgcm49VGFyYWdvbiBydD05OTE2NjgxOTEgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKRHUgaGFzdCBhdWYgbWVpbmVuIEFydGlrZWwsIGluIGRlbSBpY2ggbmFjaCBCZWlzcGllbGVuIGZ1ZXIgendlaWhhZW5kaWdlCkhhY2ttZXNzZXIgZ2VmcmFndCBoYWJlLCBnZWFudHdvcnRldCAiRWluIHNvZ2VuYW5udGVzIHdpZWdlbWVzc2VyIHp1bQpiZWlzcGllbC4iCgpTb21pdCB3YWVyZSBEZWluICJvZGVyPyIgbWl0ICJkb2NoIiBrb3JyZWt0IGJlYW50d29ydGV0LgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xODogS29jaG1lc3NlciAoVGFyYWdvbiwgIDQuIEp1biAyMDAxLCAxNzoyNTozNyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTkxNjY4MjcxIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCldlbm4gbWFuIGRpZSB0YXRzYWNoZSBiZWRlbmt0LCBkYXNzIG1hbiBiZWkgZGVyIHRhZXRpZ2tlaXQgZGVzCndpZWdlbWVzc2VyLWJlbnV0emVucyB2b24gImtsZWluaGFja2VuIiBzcHJpY2h0LCB3YWVyZSBkaWVzIGR1cmNoYXVzIGtvcnJla3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xOTogS29jaG1lc3NlciAoV3VyemVsLCAgNC4gSnVuIDIwMDEsIDIwOjM1OjQ3KToKfiMhIHJuPVRhcmFnb24gcnQ9OTkxNjY4MzM3IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCmltICB1ZWJyaWdlbjoKd2VyIG5pY2h0IGdsYXVidCwgZGFzcyBtYW4gbWl0IGVpbmVtIHp3ZWloYW5kd2llZ2VtZXNzZXIgKGVzIGdpYnQgdWVicmlnZW5zCmF1Y2ggZWluaGFlbmRpZ2UKKSBrYWVtcGZlbiBrYW5uLCBkYXJmIG1hbCBiZWkgbWlyIHZvcmJlaWtvbW1lbi4Kdm9yYXVzZ2VzZXR6dCwgbWFuIHNjaGxpZXNzdCB2b3JoZXIgZWluZSBob2hlIGxlYmVuc3ZlcnNpY2hlcnVuZyB6dSBtZWluZW4KZ3Vuc3RlbiBhYi4KCnd1cnplbCAoa29wZnNjaHVldHRlbG5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjA6IEtvY2htZXNzZXIgKEdyaW1tYm9ybiwgIDQuIEp1biAyMDAxLCAyMDozNzoxMik6Cn4jISBybj1XdXJ6ZWwgcnQ9OTkxNjc5NzQ3IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCklzdCBnZWJvbmd0LCBpY2ggbmVobWUgZGFubiBkaWUgendlaWhhZW5kaWdlIFN0cmVpdGF4dCBtaXQsIGphPyBOdXIgZnVlciBlaW5lCmtsZWluZSBEZW1vbnN0cmF0aW9uIGRhc3MgImthZW1wZmVuIiBuaWNodCB1bmJlZGluZ3QgImVyZm9sZ3JlaWNoIGthZW1wZmVuIgpoZWlzc2VuIG11c3MuCkFjaCBqYSwgdW5kIGxhc3MgRGVpbmUgRnJhdSBSaWVjaHNhcHogdm9yYmVyZWl0ZW4sIG1pciB3aXJkIGltbWVyIHNjaGxlY2h0Cndlbm4gaWNoIHNvdmllbCBCbHV0IHNlaGUuLi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjE6IEtvY2htZXNzZXIgKFd1cnplbCwgIDQuIEp1biAyMDAxLCAyMDozOTozNCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTkxNjc5ODMyIHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCm9rYXksIGR1IGRhcmZzdCBkZWluZSBheHQgaGFiZW4uIGFsbGVyZGluZ3MgYmVzdGltbWUgaWNoIGRlbiBvcnQ6IGVpbmUKa2xlaW5lIGFic3RlbGxrYW1tZXIuLi4gbWFsIHNlaGVuIG9iIGR1IGRpY2ggZGEgbWl0IGRlaW5lciBheHQgdWViZXJoYXVwdApiZXdlZ2VuIGthbm5zdCA6KQpzY2hsZWNodCB3aXJkIGRpciB2aWVsbGVpY2h0LCBhYmVyIHNlaSBiZXJ1aGlndDogbmljaHQgbGFuZ2UgOikKCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjI6IEtvY2htZXNzZXIgKEdyaW1tYm9ybiwgIDQuIEp1biAyMDAxLCAyMDo0MTo0OCk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTkxNjc5OTc0IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCkhtbSwgbWl0IHNvIGVpbmVyIEF4dCBicmF1Y2h0IG1hbiBnZWdlbiB1bmdlc2NodWV0enRlIEdlZ25lciBuaWNodCB2aWVsIFBsYXR6LgpEYXMgVGVpbCBlaW5tYWwgdm9ybnVlYmVyZmFsbGVuIGxhc3NlbiB1bmQgZXMgdHV0IHdlaC4gTHVzdGlnZXIgaXN0cyBhYmVyCm5hdHVlcmxpY2ggc2Nob24gd2VubiBtYW4gUGxhdHogenVtIHNjaHdpbmdlbiBoYXQuCgpHZEEgaXN0IGVoIGZ1ZXIgQm9nZW4gb2RlciBBcm1icnVzdC4gV2VyIGRlbiBHZWduZXIgc28gbmFoIHJhbmxhZXNzdCBkYXNzIGVyCmVpbmUgTmFoa2FtcGZ3YWZmZSBicmF1Y2h0IGhhdCBlaCB3YXMgZmFsc2NoIGdlbWFjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMzogS29jaG1lc3NlciAoUGF0cnluLCAgNC4gSnVuIDIwMDEsIDIwOjQzOjAzKToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTE2ODAxMDggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKYW0gYmVzdGVuIG1hbiBsYWVzc3QgZGFzIG1pdCBkZW0ga2FlbXBmZW4gZ2FueiwKZGllIG1laXN0ZW4gbGViZW5zdmVyc2ljaGVydWduZW4gemFobGVuIHNvd2FzIGVoIG5pY2h0IDspCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNjogS29jaG1lc3NlciAoU2FuZCwgIDQuIEp1biAyMDAxLCAyMDo0MzowNSk6Cn4jISBybj1UYXJhZ29uIHJ0PTk5MTY2ODEyNCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpFaW4gV2llZ2VtZXNzZXIgbXVzcyBuaWNodCB1bmJlbmRpbmd0IDIgS2xpbmdlbiBiZXNpdHplbiwgZXMgZ2lidCBzaWUgYXVjaAppbiBkZXIgVmFyaWFudGUgbWl0IDEgS2xpbmdlLiBEaWVzZSBmaW5kZSBpY2ggYXVjaCB6dW0gS29jaGVuIGJlc3NlcgpnZWVpZ25ldCwgbWFuIGthbm4gZGllIGF1ZiBkZXIgS2xpbmdlIGtsZWJlbmRlbiBadXRhdGVuIGxlaWNodGVyCmhlcnVudGVyYmVrb21tZW4sIGRhcyBSZWluaWdlbiBpc3QgYXVjaCBlaW5mYWNoZXIuCkFiZXIgaWNoIGJpbiBtaXIgamV0enQgZ2FyIG5pY2h0IG1laHIgc28gc2ljaGVyLCBvYiBtZWluZSBBbnR3b3J0IHdpcmtsaWNoCmluIGRpZXNlIFJ1YnJpayBwYXNzdCAuLi4KSG1tLCBTYW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMDogS29jaG1lc3NlciAoR2xvaW5zb24sICA0LiBKdW4gMjAwMSwgMjA6NDQ6MjIpOgp+IyEgcm49V3VyemVsIHJ0PTk5MTY3OTc0NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpXZW5uIER1IGRpZSBSYXRlbiB6YWhsc3QgbWFjaCBpY2ggZGFzIGdlcm5lLiBBZWhsaWNoZSBLb25kaXRpb25lbiB3aWUKR3JpbW1ib3JuIC4uLgoKR2xvaW4oc29uKSBicmF1Y2h0IG5hY2ggQWx0ZXJzZ2VsZCAuLi4gTFYgc2luZCBuaWNodCBzbyBndXQgYWJlciBiZXNzZXIgYWxzCm5peAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTY6IEtvY2htZXNzZXIgKE11cGZlbCwgIDUuIEp1biAyMDAxLCAwMTo1Njo1NCk6Cn4jISBybj1UYXJhZ29uIHJ0PTk5MTY2ODEyNCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpEYXMgaXN0IGRhbm4gYWJlciBlaGVyIGVpbmUgIm1pc2MiLVdhZmZlIChhdXMgZGVyIEtsYXNzZQoid2Vpc3NuaWNodHdhc2VzaXN0aGF1cHRzYWNoZW5ld2FmZmUiKS4KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNzogS29jaG1lc3NlciAoVGVycm9yaXN0LCAgNS4gSnVuIDIwMDEsIDAzOjEyOjIxKToKfiMhIHJuPU11cGZlbCBydD05OTE2OTkwMTQgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKSG1tIHVtIGRlciBEaXNrdXNpb24gbWFsIGVpbmVuIG5ldWVuIFRvdWNoIHp1IGdlYmVuIChVaSBoYWIgbmVuIEZyZW1kd29ydApiZW51dHp0IDspICkKCldpZSBkZWZpbmllcnQgbWFuIE1lc3NlciBiencgU2Nod2VydD8KSXN0IGRlciBlaW56aWdlIFVudGVyc2NoaWVkIGRhcyBkYXMgTWVzc2VyIGluc2dlc2FtbXQga2xlaW5lciBpc3Q/Ck9kZXIgaGF0IGVzIHZpZWxsZWljaHQgd2FzIG1pdCBkZW4gUHJvcG9ydGlvbmVuIHp1IHR1bj8KCklNSE8gaGF0IGVzIHdhcyBtaXQgZGVuIFByb3BvcnRpb25lbiB1bmQgZGVtIFVtZ2FuZyBtaXQgZGVtc2VsYmlnZW4genUgdHVuLgpXZW5uIGRpZSBLbGluZ2UgbWVociBhbHMgZG9wcGVsdCBzb2xhbmcgd2llIGRlciBHcmlmZiBpc3QgaXN0IGVzIGluIG1laW5lbgpBdWdlbiBlaW4gU2Nod2VydCAoIkJ1c2NobWVzc2VyIiBpc3QgZGllIEF1c25haG1lIGRlciBSZWdlbCA7KSApLgpVbmQgZGVyIFVtZ2FuZyAuLi4gZWluIE1lc3NlciBpc3QgZWluZSBhYnNvbHV0ZSBOYWhrYW1wZndhZmZlLCBtZWhyIHp1bQp6dXN0ZWNoZW4gYWxzIHp1bSAiaGFja2VuIiBnZWVpZ25ldC4KT2tpLCBhYmVyIC4uLgpFaW4gc2VociBrbGVpbmVyIE1lbnNjaCBoYXQgYXVjaCBrbGVpbmVyZSBIYWVuZGUsIHVuZCBtaXQgU2ljaGVyaGVpdApTY2h3aWVyaWdrZWl0ZW4gZWluIE1lc3NlciBtaXQgZWluZXIgSGFuZCB6dSBoYWx0ZW4sIGRhcyBub3JtYWwgZWluIFJpZXNlCmJlbnV0enQuCkRhZnVlciBoYWJlbiB3aXIgamEgZGllIFJhc3NlbiwgZnVlciBkaWUgVmllbGZhbHQgaW0gTUcgLi4uCkFiZXIgaXN0IGVpbiBNZXNzZXIgZGFzIGVpbiBrbGVpbmVyIE1lbnNjaCBiZW51dHp0IHBsb2V0emxpY2ggZWluIFNjaHdlcnQ/IE51cgp3ZWlsIGRpZXNlciBlcyBhbmRlcnN0IGJlbnV0enQ/CkRhbm4gbW9lY2h0ZSBpY2ggZGFzIGVpbiBTcGVlciBkZXIgdm9uIGVpbmVtIE1lbnNjaGVuIGJlbnV0enQgd2lyZCBhdWNoIHp1CmVpbmVtIFNjaHdlcnQgd2lyZCEKRWluIFNjaHdlcnQgd2llZGVycnVtIGRhcyBlaW4gRWxmIGJlbnV0enQgd2lyZCBkYW5uIG5hdHVlcmxpY2ggenUgZWluZW0gU3BlZXIuCgpIbW0gd2VubiBpaHIgZXMgc28gd29sbHQgLi4uIGljaCBnbGF1YiBkYSBzaW5kIG51ciBzZWhyIHdlbmlnZSBTcGllbGVyIGRhZ2VnZW4KOikKRXMgaXN0IG51ciBhYnNvbHV0ZXIgaGlybnZlcmJyYW5udGVyIFVuc2lubiA6KSAoS29tbXQgamEgYXVjaCB2b24gbWlyICpnKikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogS29jaG1lc3NlciAoQXJrLCAgNS4gSnVuIDIwMDEsIDA5OjQ3OjI4KToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTE2NjcyNDggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKT2RlciBiZWltIFp1ZWNrZW4gZGllIFJhc3NlIGFiZnJhZ2VuIHVuZCBkZW1lbnRzcHJlY2hlbmRlIFByb3BlcnRpZXMgc2V0emVuLgpEYW5uIGZ1bW1lbG4gSG9iYml0cyBtaXQgendlaSBIYWVuZGVuIGhlcnVtLCB1bmQgTWVuc2NoZW4gZWJlbiBudXIgbWl0IGVpbmVyLgpadW0gQmVpc3BpZWwuCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTg6IEtvY2htZXNzZXIgKE9nYXIsICA1LiBKdW4gMjAwMSwgMTM6MDA6NTcpOgp+IyEgcm49VGVycm9yaXN0IHJ0PTk5MTcwMzU0MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2Mgo+IFdpZSBkZWZpbmllcnQgbWFuIE1lc3NlciBiencgU2Nod2VydD8KCkljaCB3dWVyZGUgc2FnZW4sIG5hY2ggZGVyIEFydCBkZXIgQmVudXR6dW5nIChzb25zdCB3dWVyZGUgZGllIEJpbmR1bmcKZWluZXMgU2tpbGxzIGFuIGVpbmVuIFdhZmZlbnR5cCBhdWNoIHdlbmlnIFNpbm4gbWFjaGVuKS4gIFdpZSBtYW4gZWluZQpXYWZmZSBiZW51dHp0LCBrYW5uIG5hdHVlcmxpY2ggYXVjaCB2b24gZGVuIGVpZ2VuZW4gS29lcnBlcm1hc3NlbgphYmhhZW5nZW4gLSBkYXMgbGllZ3QgaW0gRXJtZXNzZW5zYmVyZWljaCBkZXMgTWFnaWVycy4KCj4gV2VubiBkaWUgS2xpbmdlIG1laHIgYWxzIGRvcHBlbHQgc29sYW5nIHdpZSBkZXIgR3JpZmYgaXN0IGlzdCBlcyBpbiBtZWluZW4KPiBBdWdlbiBlaW4gU2Nod2VydCAoIkJ1c2NobWVzc2VyIiBpc3QgZGllIEF1c25haG1lIGRlciBSZWdlbCA7KSApLgoKTnVuamEsIFphcml1cycgQnVzY2htZXNzZXIsIHdhcyBpY2ggZ3JhZCBoaWVyIHJ1bWxpZWdlbiBoYWJlLCBiZW51dHp0Cm1hbiBoaWVyenVsYW5kZSBhdWNoIHdpZSBlaW4gU2Nod2VydCAuLi4KCkljaCBrYW5uIG1pciBlaW5lIG1pdHRlbGdyb3NzZSBXYWZmZSB2b3JzdGVsbGVuLCBiZWkgZGVyIG1hbiBzaWNoIGF1c3N1Y2hlbgprYW5uLCB3aWUgbWFuIHNpZSBiZW51dHp0ICh6dWVja2Uga29jaGRpbmdlbnMgYWxzIG1lc3Nlci9zY2h3ZXJ0KS4KCkVpbiBNZXNzZXIgbWl0IEFuZGVydGhhbGJoYWVuZGVyLUVmZmVrdCBoYWx0ZSBpY2ggYXVjaCBmdWVyIGRlbmtiYXIgKHouQi4KV2FmZmVuc2NobGFnYm9udXMgbnVyIG1pdCB6d2VpdGVyIGZyZWllciBIYW5kKS4KCkFuc29uc3RlbjogTWVzc2VyIGlzdCwgd2FzIG1hbiBzbyBiZW51dHp0LCB3aWUgZXMgSG9nbyBlaW5lbSBlcmtsYWVydCBoYXQuIDotKQoKLS0gCk9nYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE5OiBLb2NobWVzc2VyIChPcmt0b2V0ZXIsICA1LiBKdW4gMjAwMSwgMTU6MDU6MjkpOgp+IyEgcm49T2dhciBydD05OTE3Mzg4NTcgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKV2llIHdhZXJlIGVzIGRlbm4sIGVpbmVuIFdhZmZlbnR5cCBLdXJ6c2Nod2VydCBlaW56dWZ1ZWhyZW4sIGRlciBkYW5uIGhhbHQgdm9uCmRlbiBtYXgtd2VydGVuIHVudGVyIGVpbmVtICJub3JtYWxlbiIgU2Nod2VydCBsaWVndC4gV2VubiBtYW4gZGFubiBub2NoIGRhZnVlcgpzb3JndCwgZGFzIGRhcyBmdWVyIEhvYmJpdGthZW1wZmVyIGFscyBNZXNzZXIgZ2V3ZXJ0ZXQgd2lyZCBzb2xsdGVuIGRvY2ggYWxsZQp6dWZyaWVkZW4gc2Vpbi4gRGFzIFdvcnQgTWVzc2VyIGlzdCBhdXMgZGVtIFNwaWVsLCBkaWUgSG9iYml0cyBoYWJlbiBpaHJlCjItaGFuZHdhZmZlIHVuZCBkaWUgV2VydGUgc29sbHRlbiBhdWNoIG5pY2h0IGlucyBVZmVybG9zZSB3YWNoc2VuLgoKT3JrVCwgaGV1dGUgbWFsIHByYWdtYXRpc2NoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjA6IEtvY2htZXNzZXIgKENocmlzdG9waGVyLCAgNS4gSnVuIDIwMDEsIDE1OjE2OjIxKToKfiMhIHJuPU9ya3RvZXRlciBydD05OTE3NDYzMjkgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTEwOTI4NjIKbnVuIGljaCBkZW5rZSwgd2VubiBlcyBlcnd1ZW5zY2h0IHdhZXJlL2lzdCBIb2JiaXRrYWVtcGZlcm4gZWluZW4gZWZmZWt0aXZlcmVuClVtZ2FuZyBtaXQgMkgtV2FmZmVuIHp1IGVybW9lZ2xpY2hlbiwgc28gd2FlcmUgZXMgZWluIGxlaWNodGVzIGRpZQpTa2lsbGdyZW56ZW4KZnVlciBTY2h3ZXJ0ZXIgdW5kL29kZXIgQWV4dGUgZW50c3ByZWNoZW4gYW56dWhlYmVuLgpEYW5uIGJyYWV1Y2h0ZXMgZXMgZGllc2VuIFNjaG5pY2tTY2huYWNrIG1pdCBkZW4gMkggTWVzc2VybiBnYXIgbmV0LgpBdWYgZGVyIGFuZGVyZW4gU2VpdGUga29lbm50ZW4gc2ljaCBQcm9ncmFtbWllcmVuZGUgTWFnaWVyIGFiZXIgYXVjaCAKdWViZXJsZWdlbiBpaHJlIE1vbnN0ZXIgbmljaHQgbWl0IFJ1ZXN0dW5nZW4gYXVzenVzdGF0dGVuLCBkaWUgZXMgZWluZW0KSG9iYml0IG5pY2h0IG1laHIgZXJtb2VnbGljaGVuIGRpZXNlcyBNb25zdGVyIG9obmUgTVdaIG9kZXIgc29uc3RpZ2VuClVuaXF1ZXMgenUgdHJlZmZlbi4gRGFtaXQgd2FlcmUgZGFzIFByb2JsZW0gZGVua2UgaWNoIGF1Y2ggZ2Vsb2VzdDopLgoKQ2hyaXN0b3BoZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIxOiBLb2NobWVzc2VyIChUc3VuYW1pLCAgNS4gSnVuIDIwMDEsIDIzOjU2OjI4KToKfiMhIHJuPUNocmlzdG9waGVyIHJ0PTk5MTc0Njk4MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgooUmVwbHkgenVmYWVsbGlnIGF1ZiBkaWVzZSBNZXNzYWdlIGdld2FlaGx0KQoKRGllcyBpc3QgZWluIEZhbnRhc3kgTXVkLiBXZW5uIGljaCBiZXNjaGxpZXNzZSwgbWVpbmUgV2FmZmUgc29sbCBlaW4KTWVzc2VyIHNlaW4sIGRhc3MgbWFuIG51ciB6d2VpaGFlbmRpZyBmdWVocmVuIGthbm4sIGRhbm4ga3JlaWVyZSBpY2ggZXMuCk9iJ3MgZGFzIG51biBpbiAiUkwiIGdpYnQgb2RlciBuaWNodC4gUHVua3QuCgpXZW5uIGRpZSBCYWxhbmNlIHdpbGwsIGRhc3MgZXMga2VpbmUgV2FmZmVuIGdpYnQsIGRpZSB1bnRlciBkZXIgS2F0ZWdvcmllCk1lc3NlciBsYXVmZW4gdW5kIHp3ZWloYWVuZGlnIGdlZnVlaHJ0IHdlcmRlbiwgaXN0IGRhcyBoYWx0IGF1Y2ggc28uIFB1bmt0LgpXb2JlaSwgc2llaGUgQXJ0aWtlbCB2b24gUGFkcmVpYyB6dSBkaWVzZW0gVGhlbWEuCgpBYmVyIHp1IGRpc2t1dGllcmVuLCBvYiBlcyBkZW5uIG51biBlaW4gWndlaWhhbmRtZXNzZXIgZ2ViZW4ga2FubiBvZGVyIG5pY2h0LAppc3QgbXVlc3NpZy4gV2VubiBkZXIgUHJvZ3JhbW1pZXJlciBlcyBzbyB3aWxsLCBkYW5uIG1hY2h0IGVyIGVzLgoKVHN1bmFtaS4KCkdlc3Bhbm50LCBvYiBlcyBuaWNodCBiYWxkIG5vY2ggZWluIG5ldWVzIEdyZW1pdW0gZ2lidCwgZGFzIHZvcnNjaHJlaWJ0LCB3aWUKIkZhbnRhc3kiIGF1c3p1c2NoYXVlbiBoYXQuICprb3Bmc2NodWV0dGVsKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjI6IEtvY2htZXNzZXIgKFBhdHJ5biwgIDUuIEp1biAyMDAxLCAyMzo1OToyNik6Cn4jISBybj1Uc3VuYW1pIHJ0PTk5MTc3ODE4OCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgptYW5jaG1hbCBsZXVjaHRldCBpbSBtdWQgYWJlciBkb2NoIGR1cmNoLCBkYXNzIGhpbnRlciB1bnNlcmVuIGlkZWVuIGJsb3NzCmVpbmUgYmVzY2hyYWVua3RlIHVuZCBzdGFycmUgbXVkbGliIHN0ZWh0LCBkaWUgZ2V3aXNzZSB0ZWNobmlzY2hlCnVtc2V0enVuZ2VuIGF1Znp3aW5ndCwgZGllIGJlaXNwaWVsc3dlaXNlIGthdGVnb3Jpc2llcnVuZ2VuIG1pdCBzaWNoCmJyaW5ndCwgZGllIGVpZ2VudGxpY2ggdW5hbmdlbWVzc2VuIHNpbmQuCnNvIG1hY2h0IGVzIG51ciBiZWRpbmd0IHNpbm4sIHdlaWwgZXhwbG9zaW9uIHVuZCBtZXNzZXIgYWxzIHR5cGVuIGluCmRlciBsaWIgZXhpc3RpZXJlbiB1bmQgYWxsZSB0cnlwZW4gZnJlaSBrb21iaW5pZXJiYXIgc2luZCwgYXVjaCB3aXJrbGljaApiZWlkZSB6dSBrb21iaW5pZXJlbi4KZGFzIGhhdCBuaWNodHMgbWl0IGZhbnRhc3kgc29uZGVybiBtaXQgZGVyIGR1cmNoc2NoZWluZW5kZW4gdGVjaG5pc2NoZW4KdW1zZXR6dW5nIHp1IHR1biwgZGllIHVucyBpbW1lciB3aWVkZXIgZWluc2NocmFlbmt0IGFiZXIgYXVjaCBpbiBmYWxzY2hlCmJhaG5lbiBsZW5rdC4KCi0tLS0tLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE4OiBLb2NobWVzc2VyIChBbmF0b2wsICA2LiBKdW4gMjAwMSwgMjE6MjY6MTUpOgp+IyEgcm49VGVycm9yaXN0IHJ0PTk5MTcwMzU0MSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpUOiBXZW5uIGRpZSBLbGluZ2UgbWVociBhbHMgZG9wcGVsdCBzb2xhbmcgd2llIGRlciBHcmlmZiBpc3QgaXN0IGVzIGluIG1laW5lbgpUOiBBdWdlbiBlaW4gU2Nod2VydCAoIkJ1c2NobWVzc2VyIiBpc3QgZGllIEF1c25haG1lIGRlciBSZWdlbCA7KSApLgoKR2lsdCBkZXIgVW1rZWhyc2NobHVzcyBhdWNoPyBEYXMgZ2FlbmdpZ2UgTmluamEtVG8gYmVzaXR6dCBlaW5lbiBncm9zc3p1ZWdpZwphdXNnZWxlZ3RlbiBHcmlmZiAoWndlaWhhZW5kZXIpLCBhYmVyIGVpbmUgdW52ZXJzY2hhZW10IGt1cnplIEtsaW5nZSAoaXN0CmluIEdlYmFldWRlbiBlaW5mYWNoIHByYWt0aXNjaGVyKS4gTmF0dWVybGljaCwgZGEgZ2lidCBlcyBhdWNoIEF1c25haG1lbi4uLgphYmVyIGljaCB3dWVyZGUgZGFzIERpbmcgZGVubm9jaCBuaWNodCBhbHMgTWVzc2VyIGJlemVpY2huZW4uIDspCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIzOiBLb2NobWVzc2VyIChNdXBmZWwsICA3LiBKdW4gMjAwMSwgMDM6MjM6MzYpOgp+IyEgcm49UGF0cnluIHJ0PTk5MTc3ODM2NiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5MTA5Mjg2MgpEdSBuaXgga2VubmVuIHJ1c3Npc2NoIEV4cGxvc2lvbnNtZXNzYSwgaGU/IEtyYXNzIEFsZGUhCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjQ6IEtvY2htZXNzZXIgKFZhcmxhcmlvbiwgIDcuIEp1biAyMDAxLCAwMzoyNzozMCk6Cn4jISBybj1NdXBmZWwgcnQ9OTkxODc3MDE2IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkxMDkyODYyCkV4cGxvc2lvbnNtZXNzZXI/IFdvdywgaWNoIHdvbGx0ZSBzY2hvbiBpbW1lciBuZSBHdW5ibGFkZSBoYWJlbiwgYWJlciBmYWVsbHQKc293YXMgdW50ZXIgIk1lc3NlciI/Pz8KClZhcmwqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcmVuYSAoQW1hcnlsbGlzLCAgNy4gSnVuIDIwMDEsIDE0OjU1OjUyKToKSGksCgphdWZncnVuZCB2b24gVW1iYXVhcmJlaXRlbiBpc3QgZGllIEFyZW5hIHRlbXBvcmFlciBnZXNjaGxvc3Nlbi4gSWNoIGhvZmZlLApkYXNzIGVzIG5pY2h0IGxhbmdlIChiaXMgQW5mYW5nIG5hZWNoc3RlciBXb2NoZSBvZGVyIHNvKSBkYXVlcm4gd2lyZC4gOikKCkFtYSosIHNjaGFmZmlnIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLZWluIEZhbmduZXR6IChUc3VuYW1pLCAgOC4gSnVuIDIwMDEsIDIwOjI1OjU0KToKTW9pbiEKClZvcmJlbWVya3VuZ2VuOgoKLSBEaWVzZXIgQXJ0aWtlbCBzb2xsIG5pY2h0IGFscyBBbnRpLUJhbGFuY2UtSGV0emUgbWlzc3ZlcnN0YW5kZW4gd2VyZGVuCiAgKG51ciBlaW4gYmlzc2NoZW4sIGhlaGUgOikgIC4uLiBoYXQgamEgYXVjaCBtYWwgd2llZGVyIGxhbmdlIGdlbnVnCiAgZ2VkYXVlcnQuIEljaCB3ZWlzcyBuaWNodCBtZWhyLCB3YW5uIGdlbmF1IGljaCBkZW4gQW50cmFnIGFiZ2VzY2hpY2t0CiAgaGF0dGUsIGlzdCBqYSBzY2hvbiBzbyBsYW5nZSBoZXIsIGRhcyBGaWxlIGhhdCBqZWRvY2ggZWluIAogICJBZW5kZXJ1bmdlbjogMDEuMDcuOTkiIGltIEhlYWRlci4uLiApCgotIFRpbGx5IGhhdCBtaXIgZWluZSBuZXR0ZSBCYWxhbmNlbWFpbCBnZXNjaGlja3QgdW5kIG1pciBhdXNmdWVocmxpY2gKICBlcmtsYWVydCwgd2FydW0gZXMgZGllc2VzIFRlaWwgbmljaHQgZ2ViZW4gZGFyZi4gVW5kIGljaCBrYW5uIGRlcgogIEFyZ3VtZW50YXRpb24gZHVyY2hhdXMgZm9sZ2VuLiBBbHNvIGtlaW5lICJoYXJkIGZlZWxpbmdzIiBkaWVzYmV6dWVnbGljaC4KCi0gS2VpbmUgUGFuaWssIGljaCB3ZXJkZSBuaWNodCBqZWRlc21hbCwgd2VubiBlaW5zIG1laW5lciBPYmpla3RlIGFiZ2VsZWhudAogIHd1cmRlLCBlaW5lbiBBcnRpa2VsIHNjaHJlaWJlbi4gRGllcyBpc3QgamVkb2NoIGVpbiBTcGV6aWFsZmFsbC4KCgpXaWUgc2Nob24gaW0gSGVhZGVyIGFuZ2VrdWVuZGlndCwgd2lyZCBlcyBrZWluIEZhbmduZXR6IGdlYmVuLiBJY2ggbXVzcyBkaWVzCmhpZXIga3VuZHR1biwgZGEgdmllbGUgTGV1dGUgYXVmIGJlc2FndGVzIE5ldHogZ2V3YXJ0ZXQgaGFiZW4gdW5kIGljaCBhYiB1bmQKenUgc29nYXIgbmUgTWFpbCB2b24gdW5nZWR1bGRpZ2VuIFNwaWVsZXJuIGJla29tbWVuIGhhYmUuCgpXaWVzbyB3aXNzZW4gZWluaWdlIFNwaWVsZXIgdWViZXJoYXVwdCB2b24gZGVtIEZhbmduZXR6PyBOdW4sIGRhcyBGYW5nbmV0egp3YXIgZGVyIGVpZ2VudGxpY2hlIEthdGFseXNhdG9yIHp1ciBFbnRzdGVodW5nIGRlciBHbGFkaWF0b3JlbnNjaHVsZS4KQWxzIGVyc3RlcyB3dXJkZSwgYmFzaWVyZW5kIGF1ZiBQaHlnb3MgSWRlZW4sIGRpZXNlcyBPYmpla3Qga3JlaWVydC4gV2lyCmhhYmVuIGRhbm4gbGFuZ2Ugc2luaWVydCwgd2llIHVuZCB3byB3aXIgZGFzIGFuc2NobGllc3NlbiB3b2xsZW4uIFp1ZXJzdAp3b2xsdGUgaWNoIGRpZSBQYXJhLUVpc21pbmUgZXR3YXMgZXJ3ZWl0ZXJuIHVuZCBlaW5lbiBHbGFkaWF0b3IgKENsb2RpdXMgCk9wdGltdXMpIGRvcnQgdW50ZXJicmluZ2VuLiBDbG9kaXVzIGhhdCBpbSBWZXJsYXVmIGRlciBaZWl0IGltbWVyIG1laHIKQ2hhcmFrdGVyIGJla29tbWVuLCBzb3dpZSBlaW4gcGFhciBHZWhpbGZlbiAoaS5lLiwgR2xhZGlhdG9yZW4pLiBJcmdlbmR3YW5uCnd1cmRlIGRpZSBIaW50ZXJncnVuZGdlc2NoaWNodGUgdW0gQ2xvZGl1cyBzbyBncm9zcywgZGFzcyBlciBpbiBlaW4gCmVpZ2VuZXMgR2ViaWV0IHBhc3N0ZSAoR2xhZGlhdG9yZW4gaW4gZWluZXIgRWlzbWluZSBzaW5kIGphIGF1Y2ggaXJnZW5kd2llCmRhZW1saWNoKS4KClRqYSwgc28gd3VyZGUgZGFubiBkaWUgR2xhZGlhdG9yZW5zY2h1bGUgdW0gQ2xvZGl1cyB1bmQgc2VpbiBGYW5nbmV0eiBoZXJ1bQpnZWJvcmVuLiBWaWVsZSBUZXN0c3BpZWxlciAoYW4gZGllc2VyIFN0ZWxsZSBub2NobWFscyB2aWVsZW4gRGFuayBmdWVyIApldXJlbiB0b2xsZW4gRWluc2F0eiEpIGhhYmVuIGRhbm4gZGllIEdsYWRpYXRvcmVuc2NodWxlIHVlYmVyIGVpbiBoYWxiZXMgCkphaHIgZXJmb3JzY2h0IHVuZCB2ZXJiZXNzZXJ0LiBOYWNoIGVpbmVyIHNvIGxhbmdlbiBaZWl0IGRyaW5ndCBuYXR1ZXJsaWNoCmRpZXMgb2RlciBkYXMgbmFjaCAiZHJhdXNzZW4iIChpbiB2ZXJiYWxlciBGb3JtIG5hdHVlcmxpY2gpIHVuZCBzbyBoYWJlbgplaW5pZ2UgV2luZCB2b24gZGVyIFNhY2hlIGJla29tbWVuLgoKTGVpZGVyIG11c3MgaWNoIGV1Y2ggbnVuIGVudHRhZXVzY2hlbi4gQXVzIGRlbSBOZXR6IHdpcmQgbml4LgoKVHN1bmFtaSwgaW0gQXVmdHJhZyB2b24gQ2xvZGl1cyBPcHRpbXVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEgKEFtYXJ5bGxpcywgMTIuIEp1biAyMDAxLCAxNTozNDozOSk6CkFyZ2wgYXJnbC4KcmVpc2VyZnMgaXN0IHdvaGwgbm9jaCBpbiBkZXIgQmV0YXBoYXNlLiBKZWRlbmZhbGxzIGhhYiBpY2ggYW0gV29jaGVuZW5kZQptZWluZSBNdWQtRmlsZXMgdmVybG9yZW4gOigKRGEgaWNoIGRpZXNlbiBNb25hdCBrYXVtIG5vY2ggWmVpdCBoYWJlLCBoYWJlIGljaCBkYXJ1bSBlcnN0bWFsIGRhcyBhbHRlCkJhY2t1cCBkZXIgQXJlbmEgd2llZGVyIGVpbmdlc3BpZWx0LiBGdWVyIEV1Y2ggc29sbHRlIHNpY2ggZGFtaXQgbmljaHRzCmdlYWVuZGVydCBoYWJlbiwgYXVzc2VyLCBpbiBlaW4gcGFhciBSYWV1bWVuIGV0bGljaGUgbWlzc2luZyBkZXRhaWxzIGJ6dy4KVHlwb3MgYmVzZWl0aWd0IHd1cmRlbiAoYmV0cmlmZnQgbmljaHQgZGllIGVpZ2VudGxpY2hlIEFyZW5hLCBkaWUgQW5tZWxkdW5nCnVuZCBkZW4gRWluZ2FuZ3NyYXVtKS4gRGFzIFplaXRwcm9ibGVtLCBkYXMgYmVpbSBNZXR6ZWxuIGRlciBqYSBlcmhvZWh0ZW4KQW56YWhsIHZvbiBTZWhlcmdsYWRpcyBhdWZ0cmF0LCBzb2xsdGUgbmljaHQgbWVociB2b3JoYW5kZW4gc2Vpbi4KRnVlciBtaWNoIGhhdCBzaWNoIGVpZ2VudGxpY2ggbnVyIGdlYWVuZGVydCwgZGFzcyBpY2ggbWlyIGRhcyBXb2NoZW5lbmRlCnVtc29uc3QgdW0gZGllIE9ocmVuIGdlaGF1ZW4gaGFiIDooCgpBbWEqCgpQUzogU29iYWxkIGljaCB3aWVkZXIgWmVpdCBoYWJlLCB3aXJkIGRpZSBBcmVuYSBqZWRlbmZhbGxzIHdpZWRlciB1bWdlYmF1dApiencuIEV1cmUgV3VlbnNjaGUgZWluZ2ViYXV0IC0gc28gc2NobmVsbCBnZWIgaWNoIGRhIG5pY2h0IGF1ZiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEuLi4gKEFtYXJ5bGxpcywgMTkuIEp1biAyMDAxLCAyMTozMTowOCk6Ci4uLiBtdXNzdGUgbm9jaG1hbCBnZXNwZXJydCB3ZXJkZW4sIGRhIFNwaWVsZXJkdWVsbGUgZHVyY2ggZGllIERhdGVpdW1zdGVsbHVuZwphbHMgcmljaHRpZ2UgUEtzIGdld2VydGV0IHdlcmRlbi4uLiA6LwoKQXNjaGUgYXVmIG1laW4gdW53aXNzZW5kZXMgSGF1cHQgLSBlcnN0IGRpZSBuZXVlbiBGaWxlcyB2ZXJsb3JlbiB1bmQgbnVuIGRhcwo6KAoKQW1hKiwgZnJ1c3RyaWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcmVuYS4uLiAoVGVycm9yaXN0LCAyMC4gSnVuIDIwMDEsIDAwOjA1OjA1KToKfiMhIHJuPUFtYXJ5bGxpcyBydD05OTI5NzkwNjggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTI5NzkwNjgKSG1tIGZpbmQgaWNoIGVpZ2VudGxpY2ggcG9zaXRpdiAuKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcmVuYS4uLiAoQW5hdG9sLCAyMC4gSnVuIDIwMDEsIDAxOjAwOjQ5KToKfiMhIHJuPUFtYXJ5bGxpcyBydD05OTI5NzkwNjggcmc9ZC53dWVzdGUKfiMhIHRpZD05OTI5NzkwNjgKV2llc28gbGVnc3QgRHUgZGllIERhdGVpZW4gdWViZXJoYXVwdCB1bT8hIDopCgpVbmQgd2VubiB1ZWJlcmhhdXB0LCB3YXJ1bSBuaWNodCBpbiBkaWUgU2NoYXR0ZW53ZWx0LVJlZ2lvbj8gVW5kICpkYW5uKgpoYXN0IER1IGphIHdpcmtsaWNoIGFsbGUga3VlbnN0ZXJsaXNjaGVuIEZyZWloZWl0ZW4sIGVpbmUgUEstWm9uZSB6dQpzY2hhZmZlbi4uLiBTdWVtcGZlIChtYW4ga2FubiBudXIgbGFuZ3NhbSB1bWhlcmxhdWZlbiksIE1hZ25ldHN0dWVybWUKKGVpc2VuaGFsdGlnZXMgTWF0ZXJpYWwgZmxpZWd0IGRhdm9uKSwgLi4uIHRhdXNlbmQgVmFyaWFudGVuLCB1bSBlcwpTcGllbGVybiBpbnRlcmVzc2FudGVyIHp1IG1hY2hlbiwgYW5kZXJlIFNwaWVsZXIgdW16dWhhdWVuLgoKTmljaHQsIGRhc3MgbWljaCBkYXMgaW50ZXJlc3NpZXJlbiB3dWVyZGUuIERhZnVlciBnaWJ0IGVzIHNjaGxpZXNzbGljaApSb2NodXMsIFBhcmFjZWxzdXMsIFBhdHJ5biwgLi4uIDspCgpBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXJlbmEuLi4gKEFtYXJ5bGxpcywgMjAuIEp1biAyMDAxLCAwMToyMToyMCk6Cn4jISBybj1BbmF0b2wgcnQ9OTkyOTkxNjQ5IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTkyOTc5MDY4Ck5pY2h0LCBkYXNzIGRhcyBUaGVtYSBnZW5lcmVsbCBpbiBlaW5lciBTcGllbGVycnVicmlrIHdhcyB2ZXJsb3JlbiBoYWV0dGUsCmFiZXIgZGEgZXMgbnVubWFsIHVlYmVyIGRpZSBLYW5hZWxlIHdhbmRlcnRlIHVuZCBpY2ggbWVocmZhY2ggZ2VmcmFndCB3b3JkZW4KYmluOgoKSWNoIGJpbiBkYWJlaSwgZGllIEFyZW5hIGtvbXBsZXR0IHp1IHVlYmVyYXJiZWl0ZW4uIERhcyBoZWlzc3Qgdm9yIGFsbGVtLCBkYXNzCmRpZSBCZXNjaHJlaWJ1bmdlbiBldGMuIG9yaWdpbmFsIHZvbiBEdXJpYW4gYmVsYXNzZW4gYmxlaWJlbiAoYXVzc2VyIG1pc3NpbmcKZGV0YWlscyBldGMuKSwgYWJlciBzb2xsKHRlKSB2b3IgYWxsZW0gaW4gZWluZW0ga29tcGxldHRlbiBDb2RlLVJlZGVzaWduCmVyZm9sZ2VuLCBkYW1pdCBpY2ggVm9yc2NobGFlZ2Ugdm9uIFNwaWVsZXJuIGxlaWNodGVyIGVpbmJhdWVuIGthbm4gKGRlcgpPcmlnaW5hbC1Db2RlIGlzdCBoYWx0IHNjaG9uIDcgSmFocmUgYWx0KS4KWnUgZGllc2VtIFJlZGVzaWduIGdlaG9lcnQgZnVlciBtaWNoIGhhbHQgYXVjaCwgZGFzcyBhbGxlIERhdGVpZW4gKENvZGUsCk9iamVrdGUsIERhdGVuIGV0Yy4pIHNhdWJlciBzb3J0aWVydCBzaW5kLCB1bmQgbmljaHQgbmFjaCBkZW0gS3JhdXQtdW5kClJ1ZWJlbi1QcmluemlwLiBEYXJ1bSB3b2xsdGUgaWNoIGRhIGdsZWljaCAyIEZsaWVnZW4gbWl0IGVpbmVyIEtsYXBwZQpzY2hsYWdlbi4KRGFzcyBpY2ggZGFzIGFsdGUgQmFja3VwIHdpZWRlciBlaW5zcGllbGVuIG11c3N0ZSwgd2VpbCBtZWluIHJlaXNlcmZzIGRlbgpEaWVuc3QgdmVyc2FndCBoYXQsIGlzdCBob2VjaHN0IGFlcmdlcmxpY2guIERhc3MgZWluIFNwaWVsZXIgbmVuIFBLIGFuaGFlbmdlbgpoYXR0ZSAoISksIHdlaWwgaWNoIGRpZSBGb2xnZW4gZGllc2VyIFVtbGVndW5nIG5pY2h0IGJpcyBpbnMgbGV0enRlIHN0dWRpZXJ0CmhhYmUgLCBpc3QgbWVpbmUgU2NodWxkIC0gYWxzbyBub2NobWFsIGVpbiAibWVhIG1heGltYSBjdWxwYSIgYW4gZGllc2VyClN0ZWxsZS4KRGllcyBzb2xsIG1pY2ggamVkb2NoIG5pY2h0IGRhdm9uIGFiaGFsdGVuLCBkaWUgQWVuZGVydW5nZW4gaW4gaG9mZmVudGxpY2gKYWJzZWhiYXJlciBaZWl0ICh6dW0gd2llZGVyaG9sdGVuIE1hbGUpIGR1cmNoenVmdWVocmVuIC0gbmljaHQgbnVyIHp1IG1laW5lcgpuZXJ2bGljaGVuIEJlcnVoaWd1bmcgOikKCkFiZXIgd2llc28gZXJ6YWVobCBpY2ggRGlyIGRhcywgd2VubiBEaWNoIGRhcyBlaCBuaWNodCBpbnRlcmVzc2llcnQ/Ck9oIQpXaWVzbyBzY2hyaWVic3QgRHUgdWViZXJoYXVwdCBkaWVzZW4gQXJ0aWtlbCwgd2VubiBEaWNoIGRhcyBlaCBuaWNodAppbnRlcmVzc2llcnQ/CgpGcmFnZW4gdWViZXIgRnJhZ2VuLi4uIDopCgpBbWEqLCBudW4gc2FlbXRsaWNoZSBLbGFyaGVpdGVuIHp1IGJlc2VpdGlnZW4gZ2Vob2ZmZW50IGhhYmVuIHR1dGVuIHR1ZW5kLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBYndlcnR1bmcgISAoQXJrLCAxMi4gSnVsIDIwMDEsIDIzOjA0OjI0KToKVGphLCBsZWlkZXIgaGF0IGRpZSBBYndlcnR1bmdzc3BpcmFsZSBlaW5lbiBuZXVlbiBIb2VoZXB1bmt0IGVycmVpY2h0LiBKZXR6dApzaW5kIGRpZSBiZWxpZWJ0ZW4gRmx1ZWNoZSB1bmQgS3JhbmtoZWl0ZW4gZGVyYXJ0aWcgdmVyd2FjaHN0IHdvcmRlbiwgZGFzcyBlcwpFdWNoIHdhaHJzY2hlaW5saWNoIG5pY2h0IG1laHIgZ2VmYWVsbHQuIEljaCBrYW5uIG5peCBkYWZ1ZXIgdW5kIHNjaGllYmUgYWxsZXMKYXVmIGlyZ2VuZGVpbmUgQmFsYW5jZS4gS2VpbmVzZmFsbHMgd2VyZGUgaWNoIHdlaWNoLCBkZW4gS2FtcGYgZ2VnZW4gZGVybGVpCkFid2VydHVuZ2VuIHdlcmRlIGljaCBhdWNoIHRhcGZlciBpbiBFdXJlbSBJbnRlcmVzc2UgZnVlaHJlbi4gSWNoIHNldHplIG1pY2gKZ2VybmUgZnVlciBFdWNoIGVpbiAqcmFuc2NobWVpc3MqCldhcyBpc3QgYWxzbyBTY2hsaW1tZXMgZ2VzY2hlaGVuPyBOdW4ga2FubiBtYW4gbmljaHQgbWVociBhbiBlaW5lbSBGbHVjaC9laW5lcgpLcmFua2hlaXQgc3RlcmJlbiwgd2VubiBtYW4gZHVyY2ggZWluZW4gVG9kIGJlZ2x1ZWNrdCB3dXJkZSwgYmV2b3IgZGVyCkZsdWNoL2RpZSBLcmFua2hlaXQgenVzY2hsYWVndC4gTGVocnJlaWNoZSBFcmZhaHJ1bmdlbiB3aWUgZGFzIEJldGVuIGluIGRlcgpLYXBlbGxlLCBnZWZvbGd0IGR1cmNoIGVpbmVuIGx1c3RpZ2VuIEJlc3VjaCBiZWkgTGFycyBlaW4gcGFhciBNaW51dGVuIHNwYWV0ZXIKZ2Vob2VyZW4gaGllcm1pdCBsZWlkZXIgZGVyIFZlcmdhbmdlbmhlaXQgYW4uIERhcyBtdXNzIHdvaGwgc28gc2Vpbi5BYmVyIHphZ2V0Cm5pY2h0LCBpY2ggbGFzc2UgbWlyIGRhZnVlciBlaW4gQXVzZ2xlaWNoIGVpbmZhbGxlbiwgZGVyIEV1Y2ggZW50c2NoYWVkaWd0Cip2b2xsc2NobGVpbSoKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWJ3ZXJ0dW5nICEgKEFyaywgMTIuIEp1bCAyMDAxLCAyMzowNzowOCk6Cn4jISBybj1BcmsgcnQ9OTk0OTcxODY0IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTk0OTcxODY0CldlaXQgdm9uIG1pciB3ZWlzZSBpY2ggbmF0dWVybGljaCBqZWdsaWNoZW4gc2F0aXJpc2NoZW4gR2VoYWx0IGRlcwp2b3JoZXJnZWhlbmRlbiBlcm5zdGVuIEFydGlrZWxzLgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBYndlcnR1bmcgISAoQW5hdG9sLCAxMi4gSnVsIDIwMDEsIDIzOjMzOjA2KToKfiMhIHJuPUFyayBydD05OTQ5NzE4NjQgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTQ5NzE4NjQKPiAuLi4gIExlaHJyZWljaGUgRXJmYWhydW5nZW4gd2llIGRhcyBCZXRlbiBpbiBkZXIgS2FwZWxsZSwgZ2Vmb2xndCBkdXJjaAo+IGVpbmVuIGx1c3RpZ2VuIEJlc3VjaCBiZWkgTGFycyBlaW4gcGFhciBNaW51dGVuIHNwYWV0ZXIgZ2Vob2VyZW4gaGllcm1pdAo+IGxlaWRlciBkZXIgVmVyZ2FuZ2VuaGVpdCBhbi5sZWlkZXIgZGVyIFZlcmdhbmdlbmhlaXQgYW4uIC4uLgoKU29sYW5nZSBSb2NodXMgZGVuIFNjaGxhZWNodGVyIG5pY2h0IGJ1Z2ZpeHQsIHdlcmRlbiB3aXIgYXVmIGRpZXNlCmxlaHJyZWljaGVuIEVyZmFocnVuZ2VuIG5pY2h0IHZlcnppY2h0ZW4gbXVlc3NlbiwgQXJrLCBhYmVyIGhhYiBEYW5rCmZ1ZXIgRGVpbmUgRnVlcnNvcmdlLiA6KQoKQW5hdG9sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFid2VydHVuZyAhIChBcmssIDEyLiBKdWwgMjAwMSwgMjM6MzQ6NDYpOgp+IyEgcm49QW5hdG9sIHJ0PTk5NDk3MzU4NiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5NDk3MTg2NApbVGVhbTpUb2QgZGVtIFNjaGxhZWNodGVyYnVnZml4XSBBcmssIGRlciBad2VyZyBwcm8gU3BpZWxlcnR1bS4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBYndlcnR1bmcgISAoTm9ubmUsIDEzLiBKdWwgMjAwMSwgMTg6MTg6MjApOgp+IyEgcm49QXJrIHJ0PTk5NDk3MzY4NiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5NDk3MTg2NApJY2ggaGFiZSBSb2NodXMgZ2VuYXUgZGllIFplaWxlIGdlemVpZ3QsIGluIGRlciBlcyBidWd0LiBBbHNvIHdpcmQgZGVyIEZpeAp3YWhyc2NoZWlubGljaCBrdXJ6IG5hY2ggQW5zY2hsdXNzIHZvbiBUYXJhbWlzIGVpbmdlc3BpZWx0IHdlcmRlbi4KCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQWJ3ZXJ0dW5nICEgKFJvY2h1cywgMTQuIEp1bCAyMDAxLCAxMjoyMTowNSk6Cn4jISBybj1Ob25uZSBydD05OTUwNDExMDAgcmc9ZC53dWVzdGUKfiMhIHRpZD05OTQ5NzE4NjQKRGVyIEJ1ZyBzb2xsdGUgamV0enQgcmF1cyBzZWluCihpY2ggd2Vpc3MsIGRhcyBoYWJlIGljaCBzY2hvbm1hbCBnZXNhZ3QuLi4gOikKCiAgUm9jaHVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBBYndlcnR1bmcgISAoU2lsdmFuYSwgMTQuIEp1bCAyMDAxLCAyMTowMzozOCk6Cn4jISBybj1Sb2NodXMgcnQ9OTk1MTA2MDY1IHJnPWQud3Vlc3RlCn4jISB0aWQ9OTk0OTcxODY0ClRyb2VzdGUgRGljaCwgUm9jaHVzLiBJY2ggaGF0dGUgYXVjaCBtYWwgYW5nZW5vbW1lbiwgVGFyYW1pcyBiaXMgenVtCk1pbGxlbml1bXN3ZWNoc2VsIGFuZ2VzY2hsb3NzZW4genUgYmVrb21tZW4uLi4gTmFqYSwgZmFsbHMgaWNoIG5pY2h0IHZvcmhlcgpzdGVyYmUgb2RlciBkYXMgTUcgYmlzIGRhaGluIG5pY2h0IG1laHIgZXhpc3RpZXJ0LCB3ZXJkIGljaCdzIHp1bSBuYWVjaHN0ZW4KTWlsbGVuaXVtc3dlY2hzZWwgd29obCBzY2hhZmZlbi4gOy0pCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEFid2VydHVuZyAhIChTb2xteXIsIDE0LiBKdWwgMjAwMSwgMjE6MDU6MzApOgp+IyEgcm49U29sbXlyIHJ0PTk5NTEzNzQ2MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTk5NDk3MTg2NApPcHRpbWlzdGluISAqSG5nbCoKClNvbG15cgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEgKFJ5bGxpcywgMTEuIEF1ZyAyMDAxLCAwMDo0NDowMik6CkhpLAoKZGFzIEJhY2t1cCBkZXIgQXJlbmEgKGFsc28gcXVhc2kgZGllIGFsdGUgVmVyc2lvbiwgaWhyIHdpc3N0IHNjaG9uLCBkYXMKcmVpc2VyZnMgdW5kIGljaC4uLikgaXN0IG5hY2ggZGVtIFJlYm9vdCB3aWVkZXIgZHJhbi4gRmFsbGVzIGVzIFByb2JsZW1lIGdpYnQsCmJpdHRlIGFzYXAgTWFpbCBhbiBtaWNoLgoKR3J1c3MsCkFtYSoKClBTOiBEaWVzIHNvbGx0ZSBsZWRpZ2xpY2ggZGllIG9yaWdpbmFsZSwgYWx0ZSBWZXJzaW9uIGRlciBBcmVuYSBzZWluLiBOZXVlCkFlbmRlcnVuZ2VuIHdlcmRlbiB2b24gbWlyIChlcm5ldXQpIGVpbmdlc3BpZWx0LCBzb2JhbGQgaWNoIFplaXQgZmluZGUgKGthbm4KZGF1ZXJuKS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1cyBkZXIgV3Vlc3RlIHZlcm5pbW10IG1hbiBlaW4gdHJpdW1waGllcmVuZGVzIEhldWxlbiAuLi4gKEFyaywgMTQuIEF1ZyAyMDAxLCAxOTo1MDowMyk6Ci4uLiBkZW5uIGRlciBHZWlzdCBkZXMgUHJpZXN0ZXJzIGhhdCBtaXQgRXJmb2xnIGVpbmVuIHdlaXRlcmVuIGFlcmdlcmxpY2hlbgpTa2FyYWJhZXVzIGJlc2llZ3QsIGRlciBpaG4gdmVyd3VuZGJhciBtYWNodGUuIE51biBsYXVlcnQgZXIgd2llZGVyIGF1ZgpzdHVwc2dlaWxlIFN0b2VyZW5mcmllZGUsIGRpZSBpaG0gYW5zIGR1cmNoc2ljaHRpZ2UgTGVkZXIgd29sbGVuLgpTb2xsdGVuIFNpZSBkZW5ub2NoIEthZWZlciBhdWZzcHVlcmVuLCB3ZW5kZW4gU2llIHNpY2ggdmVydHJhdWVuc3ZvbGwgYW4gZWluZW4KS2FtbWVyamFlZ2VyIElocmVzIFZlcnRyYXVlbnMuIFp1d2lkZXJoYW5kbHVuZ2VuIHdlcmRlbiBtaXQgRmx1ZWNoZW4gbmljaHQKdW50ZXIgMTAgV29ydGVuL1plaWNoZW4gYmVzdHJhZnQuIFRvZCBhbGxlbiBJbnNla3Rlbi4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgWm9ybiBkZXIgLi4uIGFlaCAuLi4gZGluZ2VucyAuLi4gKEFyaywgIDguIE9rdCAyMDAxLCAxNzoyMTo0MCk6CkVzIGtsb3BmdC4KVW53aWxsaWcgc2NoYWx0ZXN0IER1IHVtIHVuZCBydWZzdDogSGVyZWluIQpGYWNoaWRoIGJldHJpdHQgZGVuIFJhdW0uCkR1IHN0b2VobnN0LgpEdSBkcmVoc3QgZGVuIFRvbiBsZWlzZXIgdW5kIG51c2NoZWxzdDogV2FzIGdpYnQncz8KRmFjaGlkaCBzdGF1bnQuCkZhY2hpZGggc2FndDogTWVpc3RlciwgaWNoIHd1c3N0ZSBuaWNodCwgZGFzcyAuLi4gc3RvZXJlIGljaD8KRHUgc2Fnc3Q6IEphLgpGYWNoaWRoIGVycm9ldGV0LgpEdSBkZXV0ZXN0IGF1ZiBkZW4gZmxpbW1lcm5kZW4gQmlsZHNjaGlybS4KRHUgc2Fnc3Q6IFJhY2hlIQpGYWNoaWRoIHp1Y2t0IHp1cnVlY2s6IFdhcyBtZWludCBJaHIsIEhlcnI/CkR1IGdyaW5zdCBkYWVtb25pc2NoIChvZGVyIHNvKS4KRHUgc2Fnc3Q6IERpZSBIZWlsaWdlbiBoYWJlbiBkZW4gV2lraW5nZXJuIGRlbiBLcmllZyBlcmtsYWVydCB1bmQgZ2V3b25uZW4uCkR1IHNhZ3N0OiBSYWNoZSBmdWVyIGxldHp0ZXMgSmFociwgYWxzIHdpciBhdXMgZGVuIFBsYXktT2ZmcyBnZWZsb2dlbiBzaW5kLgpGYWNoaWRoIHp1Y2t0IHZlcndpcnJ0IG1pdCBkZW4gU2NodWx0ZXJuLgpGYWNoaWRoIHNhZ3Q6IFdpZSBJaHIgYmVmZWhsdCwgTWVpc3RlciAuLi4gaWNoIC4uLgpEdSBzZXVmenQuCkR1IGJpZXRlc3QgRmFjaGlkaCBlaW4gcGFhciBDaGlwcyBhbi4KRmFjaGlkaCBuaW1tdCB2b3JzaWNodGlnIGVpbiBwYWFyIENoaW9zIHVuZCBzYWd0OiBNZWlzdGVyLCBkZXIgWmF1YmVyc2NoaWxkPwpFbnRzZXR6dCBzcHJpbmdzdCBEdSBhdWYuCkR1IHNhZ3N0OiBGYWVsbHQgU0lFIGltbWVyIG5vY2ggZGFyYXVmIGhlcmVpbj8KRmFjaGlkaCBzdHJhaGx0OiBIZXJyLCBpY2ggaGFiZSBoZWltbGljaCBlaW5pZ2UgQWJlbnRldXJlciBpbiBkYXMgR2V3b2VsYmUKRmFjaGlkaCBzdHJhaGx0OiBiZWdsZWl0ZXQsIHVuZCBzaWUgaGFiZW4gZGllIEtvZW5pZ2luIGJlc2llZ3QuIEVzIHdhcmVuCkZhY2hpZGggc3RyYWhsdDogbWFlY2h0aWdlIFphdWJlcmVyIG1pdCBlaW5lbSBTY2hpbGQsIGRhcyBzbyBzY2hvZW4sIHNvCkZhY2hpZGggc3RyYWhsdDogcmVpbiB3YXIsIGRhc3MgZGllIHNjaHdhcnplIE1hZ2llIGRlciBLb2VuaWdpbiBlaW5mYWNoIC4uLgpEdSB1bnRlcmJyaWNoc3QgRmFjaGlkaDogQWxzbyB3aW1tZWx0ZSBlcyB2b3IgS2FlZmVybiBkYSB1bnRlbj8KRmFjaGlkaCBzdG90dGVydDogSWNoIHdlaXNzIG5pY2h0LCBNZWlzdGVyLCBhYmVyIGRpZSBLb2VuaWdpbiB3dXJkZSBzbwpGYWNoaWRoIHN0b3R0ZXJ0OiBzY2hsaWVzc2xpY2ggYmVzaWVndC4KRHUgbWFjaHN0IGVpbmUga2xlaW5lIEhhbmRiZXdlZ3VuZy4KUGF0cnluIGtvbW10IGFuLgpEdSBkZXV0ZXN0IGF1ZiBGYWNoaWRoLgpEdSBzYWdzdDogRXIgaGF0IGVzIGVudGRlY2t0LCBhdWNoIGRpZSBTcGllbGVybWV1dGVuIHdpc3NlbiBlcyBzY2hvbi4KUGF0cnluIG1hY2h0IGVpbiBwYWFyIGJlc2Nod29lcmVuZGUgR2VzdGVuLgpQYXRyeW4gc2FndDogLi4uIG9vb2gsIGljaCBzZWhlIGVzIC4uLiBkZXIgU2NoaWxkIGhhZWx0LCBkb2NoIHNpZSBoYXQgc2ljaApQYXRyeW4gc2FndDogc2Nod2VyIHZlcmxldHp0IC4uLiBhYWFoLCBudW4gdHJpZmZ0IHNpZSBzaWNoIGVpbiBsZXR6dGVzIE1hbApQYXRyeW4gc2FndDogLi4uIHNvLCBkYSBpc3QgZXIgamEgc2Nob24gLi4uClBhdHJ5biBibGlja3QgaW4gZGllIEZlcm5lIHVuZCBtYWNodCBlaW4gcGFhciB0ZWNobmlzY2hlIEJlbWVya3VuZ2VuLCBkaWUKaGllciBrZWluZXN3ZWdzIGV0d2FzIHp1ciBTYWNoZSB0dW4uCkZhY2hpZGggaXN0IHRvdGFsIHZlcndpcnJ0LgpGYWNoaWRoIHNhZ3Q6IFdhcyBnZXNjaGllaHQgbnVuPwpEdSBzYWdzdDogSWNoIGJlZnVlcmNodGUsIFNJRSB3aXJkIHNpY2ggcmFlY2hlbiAuLi4gU0lFIHdpcmQgc2ljaCBuaWNodCBzbwpEdSBzYWdzdDogZWluZmFjaCBzZWxic3QgdG9ldGVuLgpGYWNoaWRoIGVyYmxlaWNodDogSGVpc3N0IGRhcywgZGVyIFphdWJlcnNjaGlsZCAuLi4/CkR1IGJlc2Nod2ljaHRpZ3N0IEZhY2hpZGguCkR1IHNhZ3N0OiBOZWluLCBpY2ggZ2xhdWJlLCBkZXIgWmF1YmVyc2NoaWxkIHdpcmQgd2VpdGVyaGluIHdpcmtlbiwgZG9jaApEdSBzYWdzdDogU0lFIHdpcmQgc2ljaCBhdWNoIGRhbm4gbm9jaCBhdXMgZGVtIEplbnNlaXRzIHJhZWNoZW4sIHdhcyBzaWUKRHUgc2Fnc3Q6IGJpc2hlciBuaWNodCB0YXQsIHdlaWwgZGllIEthZWZlciB6dSBtYWVjaHRpZyB3YXJlbi4gRGFuayBEZWluZXIKRHUgc2Fnc3Q6IHRhcGZlcmVuIEJlb2JhY2h0dW5nZW4gaXN0IFNJRSB3aWVkZXIgYXVmIGRlbSBIb2VoZXB1bmt0IElIUkVSCkR1IHNhZ3N0OiBNYWNodC4gSWNoIHZlcmxlaWhlIERpciBkYWZ1ZXIgLi4uCkR1IHN1Y2hzdCB1bnRlciBEZWluZW0gU29mYXNpdHpraXNzZW4gZXR3YXMuCkZhY2hpZGggaXN0IHNpY2h0bGljaCBlbnRnZWlzdGVydC4KRHUgc2Fnc3Q6IC4uLiBkZW4gT3JkZW4genVyIFJldHR1bmcgZ2VwZWluaWd0ZXIgTW9uc3RlciBlaHJlbmhhbGJlci4KRHUgaGFlbmdzdCBkYXMgMDgxNSBPYmpla3QgdW0gRmFjaGlkaHMgSGFscy4KRmFjaGlkaCBzdG90dGVydDogTW1tZWlzdGVyLCBkZGRhcyB3b2xsdGUgaWlpaWNoIG5pY2h0IC4uLgpEdSBzYWdzdDogRWdhbC4gUmF1cyBqZXR6dC4gVW5kIGxhc3MgbWljaCBkaWUgU2Fpc29uIHVlYmVyIGluIEZyaWVkZW4hCkZhY2hpZGggdGF1bWVsdCBnZXRyb2ZmZW4gYXVzIGRlbSBSYXVtLgpEdSBtdXJtZWxzdDogTlBDcywgcGFoIC4uLgpEdSBtYWNoc3QgZWluZSBCZXdlZ3VuZy4KUGF0cnlucyBTY2hhdHRlbiB2ZXJzY2h3aW5kZXQgZWluZmFjaC4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVyIFpvcm4gZGVyIC4uLiBhZWggLi4uIGRpbmdlbnMgLi4uIChNb250YW51cywgIDguIE9rdCAyMDAxLCAxOToxMjo0NCk6Cn4jISBybj1BcmsgcnQ9MTAwMjU1NDUwMCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwMDI1NTQ1MDAKSmF1LiBXYXIgZWluIHNjaG9lbmVzIFNwaWVsLiBVbmQgd2VyIG1hZyBzY2hvbiBDdWxwZXBwZXI/CipyZ3JpbnNlIGFyayoKCi1Nb250YW51cwoKRGlzY2xhaW1lcjogZGllc2VyIEFydGlrZWwgbWFnIHNpbm5mcmVpIGVyc2NoZWluZW4uIElzdCBlciBhYmVyIG5pY2h0LiBBcmsKd2Vpc3MsIHdhcnVtLiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVyIFpvcm4gZGVyIC4uLiBhZWggLi4uIGRpbmdlbnMgLi4uIChBcmssICA4LiBPa3QgMjAwMSwgMTk6MjI6NTYpOgp+IyEgcm49TW9udGFudXMgcnQ9MTAwMjU2MTE2NCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwMDI1NTQ1MDAKRHUgc2luZ3N0OiBPaCB3aGVuIHRoZSBTYWludHMgLi4uIGdvIG1hcmNoaW4nIGluIC4uLiBvaCB3aGVuIHRoZSBTYWludHMgZ28KbWFyY2hpbicgaW4gLi4uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIFpvcm4gZGVyIC4uLiBhZWggLi4uIGRpbmdlbnMgLi4uIChBbmFjcmlvbiwgIDguIE9rdCAyMDAxLCAxOToyNDoyNyk6Cn4jISBybj1BcmsgcnQ9MTAwMjU2MTc3NiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwMDI1NTQ1MDAKTWVociBzaW5uZnJlaWUgQXJ0aWtlbCAhIDtvKSAtLT4+IE1FR0FTQ0hNQVJSTgoKYW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERlciBab3JuIGRlciAuLi4gYWVoIC4uLiBkaW5nZW5zIC4uLiAoTW9udGFudXMsICA4LiBPa3QgMjAwMSwgMTk6MjU6MzEpOgp+IyEgcm49QW5hY3Jpb24gcnQ9MTAwMjU2MTg2NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwMDI1NTQ1MDAKbWFuIHNvbGx0ZSBuaWNodCBnbGF1YmVuLCBkYXNzIGR1IGluIEFtZXJpa2EgYmlzdC93YXJzdC4KU293b2hsIEFya3MgYWxzIGF1Y2ggbWVpbiBBcnRpa2VsIHdhcmVuIG5pY2h0IHNpbm5mcmVpLCB1bmQgbnVyIGVpbiBLcnRpbgp3dWVyZGUgIkN1bHBlcHBlciIgaW4gZGllIFJ1YnJpayAia29jaHJlemVwdGUiIGVpbnNvcnRpZXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IERlciBab3JuIGRlciAuLi4gYWVoIC4uLiBkaW5nZW5zIC4uLiAoV3VyemVsLCAgOC4gT2t0IDIwMDEsIDIyOjA0OjI1KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwMDI1NjE5MzEgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDAyNTU0NTAwCmhlLCBsYXNzdCBtaXIgZGllIGtvY2hyZXplcHRlIGluIHJ1aGUuIGRhIGlzdCBlcyB6d2FyIHZpZWwgenUgcnVoaWcsIGFiZXIKc2NobWFycm4gc29sbHRlIGRvcnQga2VpbmVzZmFsbHMgaGluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmEgKEFtYXJ5bGxpcywgMTUuIE1haSAyMDAyLCAxOTo1Mzo0MCk6Ck1vaW4sCgppY2ggYXJiZWl0ZSBnZXJhZGUgKHp1bSB6d2VpdGVuIE1hbCwgZ3J1bW1lbCkgYW4gZWluZXIgTmV1ZmFzc3VuZyBkZXIgQXJlbmEuCkFuIGRlciBHcnVuZGZ1bmt0aW9uYWxpdGFldCB3aXJkIHNpY2ggZnVlciBFdWNoIG5pY2h0cyBhZW5kZXJuLCBhYmVyIHdlbm4gSWhyCld1ZW5zY2hlIG9kZXIgQW5yZWd1bmdzdm9yc2NobGFlZ2UgaGFidCwgd2FzIG5vY2ggcmVpbnNvbGx0ZSAoYml0dGUgbnVyCnJlYWxpc3Rpc2NoZSBWb3JzY2hsYWVnZSEpLCB3YWVyZSBlcyBqZXR6dCBndWVuc3RpZywgc293YXMgbG9zenV3ZXJkZW4uCgpHcnVzcywKQW1hKgoKUFM6IEtlaW5lIEhla3RpaywgYmVpIG1laW5lciBtb21lbnRhbmVuIFJMLVBoYXNlIHdpcmQgZGFzIHNpY2hlciBub2NoCm1pbmRlc3RlbnMgZWluL3p3ZWkgTW9uYXRlIGRhdWVybi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFyZW5hIChBbWFyeWxsaXMsIDE1LiBNYWkgMjAwMiwgMjA6NDI6MjIpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEwMjE0ODUyMjAgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDIxNDg1MjIwCkhtLCBpY2ggdmVyZ2FzcyB6dSBlcndhZWhuZW46CgpWb3JzY2hsYWVnZSBiaXR0ZSBwZXIgTWFpbCwgZGFtaXQgaWNoIGRhcyBzY2hvZW4gc2NocmlmdGxpY2ggaGFiZS4KVW5kIGJpdHRlIG1laHIgYWxzIGVpbiBXb3J0IC0gZWluZSBrdXJ6ZSBFcmxhZXV0ZXJ1bmcgZXRjLiBpc3QgZGllbmxpY2ggOikKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFic2NoaWVkIChBcmssICA4LiBKdWwgMjAwMiwgMjI6MTk6NTgpOgoKVm9yc2ljaHRpZyBvZWZmbmVzdCBEdSBkaWUgSG9senR1ZXIgdW5kIHNjaGx1ZXBmc3QgaW4gZGVuIFJhdW0gZGFoaW50ZXIuCkVpbiBhdWZkcmluZ2xpY2hlciBHZXJ1Y2ggdm9uIFBmbGFuemVub2VsIGR1cmNoZHJpbmd0IGRpZXNlcyBncm9zc2UKV29obmdlbWFjaC4gQW4gZGVyIFN1ZWR3YW5kIHNpZWhzdCBEdSBlaW4gZ2V3YWx0aWdlcyBCZXR0IG1pdCBCZXp1ZWdlbiBhdXMKU2VpZGUgdW5kIGVpbmVtIHVlYmVyZGltZW5zaW9uYWxlbiBLb3Bma2lzc2VuLiBFaW4gYnJlaXRlciBTY2hyZWlidGlzY2ggYXVzCnNjaHdhcnplbSBIb2x6IHN0ZWh0IGltIE5vcmR3ZXN0ZW4uIERhaGludGVyIHNpdHp0IGVpbiBqdW5nZXIgTWFubiBtaXQKcGVjaGZhcmJlbmVtIEhhYXIuIFphaGxsb3NlIEtvbW1vZGVuIHVuZCBTY2hyYWVua2UgYmV2b2Vsa2VybiBkZW4gU3VlZHdlc3RlbgpkZXMgUmF1bWVzLCB3YWVocmVuZCB6d2lzY2hlbiBkZW4gYmVpZGVuIHNvbm5lbmR1cmNoZmx1dGV0ZW4gRmVuc3Rlcm4gYW4gZGVyCkF1c3NlbndhbmQgZWluIER1dHplbmQgZ2VmdWVsbHRlIEJ1ZWNoZXJyZWdhbGUgdW50ZXJlaW5hbmRlciBhbmdlb3JkbmV0IHNpbmQuClZvciBEaXIgaW0gWmltbWVyIHN0ZWh0IGVpbiBrbGVpbmVyLCBlaW5sYWRlbmRlciB1bmQgdmVyc2NoaWViYmFyZXIgVGVld2FnZW4uIApFcyBnaWJ0IGVpbmVuIHNpY2h0YmFyZW4gQXVzZ2FuZzogc3VlZHdlc3Rlbi4KRmFjaGlkaCBpYm4gRHJ1emguCk1pdCBlaW5lciBob2VmbGljaGVuIFZlcmJldWd1bmcgc2NobGllc3N0IER1IGRpZSBIb2x6dHVlciBoaW50ZXIgRGlyLgpGYWNoaWRoIGJsaWNrdCBrdXJ6IGF1Ziwgbmlja3QgdW5kIGRldXRldCBhdWYgZGVuIFRlcHBpY2guCkR1IHNldHp0IERpY2ggbWl0IGVpbmVtIEFlY2h6ZW4uCkR1IHNhZ3N0OiBBbHRlciBGcmV1bmQsIHdpZSBsYW5nZSBpc3QgZXMgaGVyID8KRmFjaGlkaCBzaWVodCBEaWNoIGFuIHVuZCBzY2h1ZXR0ZWx0IG1pc3NiaWxsaWdlbmQgZGVuIEtvcGYuCkZhY2hpZGggbWVpbnQ6IFp1IGxhbmdlLCBtZWluIGxpZWJlciBNZWlzdGVyLCB6dSBsYW5nZS4gSWNoIG11c3Mgc2Nob24gc2FnZW4sCkZhY2hpZGggbWVpbnQ6IGRhc3MgSWhyIEV1Y2ggd2llZGVyIGhpZXIgYmxpY2tlbiBsYXNzdCwgaXN0IHdpcmtsaWNoIGV0d2FzIC4uLgpGYWNoaWRoIG1laW50OiBiZW1lcmtlbnN3ZXJ0LgpEdSBlcnJvZXRlc3QuCkR1IHNhZ3N0OiBJY2ggaGFiZSBEaXIgZGllc21hbCBldHdhcyB6dSBzYWdlbiwgZXR3YXMgc2VociBCZXVucnVoaWdlbmRlcy4KRmFjaGlkaCB3aW5rdCBhYi4KRmFjaGlkaCBzYWd0IHNwb2V0dGlzY2g6IEdlbWFjaCwgTWVpc3RlciwgR2VtYWNoLCBpY2gga2FubiBtaXIgbmljaHQgdm9yc3RlbGxlbiwKRmFjaGlkaCBzYWd0IHNwb2V0dGlzY2g6IGRhc3MgZXMgbWljaCB2b20gU3R1aGxlIHJlaXNzdC4gV2FocnNjaGVpbmxpY2ggd2lyZCBlcwpGYWNoaWRoIHNhZ3Qgc3BvZXR0aXNjaDogd2llZGVyIEFlcmdlciBmdWVyIG1pY2ggYmVkZXV0ZW4sIGFiZXIgZGFzIGJpbiBpY2ggamEKRmFjaGlkaCBzYWd0IHNwb2V0dGlzY2g6IG51biBzY2hvbiBzbyBsYW5nZSBnZXdvaG50LgpEdSBzdGFtcGZzdCBtaXQgZGVtIEZ1c3MgYXVmLgpEdSBzYWdzdDogV2FzIGVybGF1YnN0IER1IERpciA/IEljaCByZWlzc2UgbWlyIGhpZXIgZGVuIEFyc2NoIGF1ZiwgdW0gRGlyIGRhcwpEdSBzYWdzdDogTGViZW4gZWluZmFjaGVyIHp1IG1hY2hlbiwgdW5kIHdhcyBpc3QgZGVyIERhbmsgPz8/CkZhY2hpZGggcmljaHRldCBzaWNoIGltIFN0dWhsIGF1Ziwgc2VpbmUgQXVnZW4gYmxpdHplbi4KRmFjaGlkaCBzcHJpY2h0OiBEZXIgRGFuayA/IE1laXN0ZXIsIHdvZnVlciA/IFdhbm4gaGFidCBJaHIgbWlyIGRhcyBsZXR6dGUgTWFsCkZhY2hpZGggc3ByaWNodDogZXR3YXMgR3V0ZXMgZ2V0YW4gPyBXaWUgb2Z0IG11c3N0ZSBpY2ggc2Nob24gd2VocmxvcyBhdWYgZGllCkZhY2hpZGggc3ByaWNodDogZ2V6dWVja3RlbiBLZXJiaG9lbHplciBibGlja2VuLCBpbW1lciBob2ZmZW5kLCBkYXNzIGljaCBuaWNodApGYWNoaWRoIHNwcmljaHQ6IHVud2lzc2VudGxpY2ggc3RhZXJrZXIgZ2V3b3JkZW4gYmluID8gSW1tZXIsIG5hY2hkZW0gaWNoIEV1Y2gKRmFjaGlkaCBzcHJpY2h0OiBkaWUgTmFjaHJpY2h0IHVlYmVyIG5ldWVzIFVuaGVpbCB1bnRlciBkZW0gVHVybSBicmFjaHRlLCBzaW5kCkZhY2hpZGggc3ByaWNodDoga3VyeiBkYXJhdWYgbWV0emVsd3VldGlnZSBBYmVudGV1cmVyIGhpZXIgZWluZ2VmYWxsZW4gdW5kCkZhY2hpZGggc3ByaWNodDogaGFiZW4gZGFzIEJvZXNlIGdld2Vja3QuIE1laW4gQnJ1ZGVyIG11c3Mgc2ljaCB6dW5laG1lbmQgZGVuCkZhY2hpZGggc3ByaWNodDogQW5ncmlmZmVuIGRpZXNlciBNZXR6ZWx0b3VyaXN0ZW4gc3RlbGxlbiwgbmFjaGRlbSBlaW5pZ2Ugd29obApGYWNoaWRoIHNwcmljaHQ6IG1pdCBkZW4gR2VmYWhyZW4gZG9ydCB1bnRlbiB1ZWJlcmZvcmRlcnQgd2FyZW4uIFVuZCBkYWZ1ZXIsCkZhY2hpZGggc3ByaWNodDogTWVpc3Rlciwgc29sbCBpY2ggZGFua2JhciBzZWluID8gTmVpbiwgc2FnZSBpY2gsIG5laW4uCkR1IGJlZ2lubnN0IHp1IHN0b3R0ZXJuLgpEdSBibHViYmVyc3Q6IFd3d3dhc3NzIGVybGxsbGF1YnN0IERkZHUgRGRpciA/IEljaCB3YXJuZSBEaWNoLCB1ZXVldWViZXJ0cmVpYgpEdSBibHViYmVyc3Q6IGVzIG5pY2h0LCBpY2ggd3d3b2xsdGUgRGRpciBudXIgaGVoZWxmZW4uClNjaGxpZXNzbGljaCBmYWVuZ3N0IER1IERpY2ggd2llZGVyLgpEdSBzYWdzdDogRWluZSBuZXVlLCBncm9lc3NlcmUgR2VmYWhyIHN1Y2h0IGRpZSBXZWx0IGRvcnQgdW50ZW4gaGVpbS4gU2llIGthbm4KRHUgc2Fnc3Q6IGplZGVyemVpdCB6dSBlaW5lciBHZWZhaHIgZnVlciBkYXMgZ2FuemUgTW9yZ2VuR3JhdWVuIHdlcmRlbiwgZGFzCkR1IHNhZ3N0OiBzb2xsdGVzdCBEdSB3aXNzZW4uIEF0aG90ZXAgaGF0IGRpZSBnYW56ZSBaZWl0IHVlYmVyIGVpbmVuIGdlaGVpbWVuCkR1IHNhZ3N0OiBadWdhbmcgenVyIEdlaXN0ZXJ3ZWx0IGJld2FjaHQsIGRlciB6dW0gR3JhYiBzZWluZXMgSGVycm4gZnVlaHJ0LApEdSBzYWdzdDogZWluZW0gQW5oYWVuZ2VyIFNldGhzLCBkZXIgVW5zdGVyYmxpY2hrZWl0IGVybGFuZ3RlLgpGYWNoaWRoIHp1Y2t0IG1pdCBkZW4gU2NodWx0ZXJuLgpGYWNoaWRoIG1laW50IG51cjogU2Nob2VuLCBNZWlzdGVyLCBpY2ggc2VoZSwgZGFzcyBJaHIgRXVjaCBuYWNoIEV1cmVtIGV0d2FzLApGYWNoaWRoIG1laW50IG51cjogYWVoLCAidW52ZXJob2ZmdGVuIiBBdWZzdGllZyBpbSBLcmVpc2UgZGVyIGdvZXR0bGljaGVuCkZhY2hpZGggbWVpbnQgbnVyOiBCZWFtdGVuIG1laHIgdW0gZGllIGdhbnplIFdlbHQga3VlbW1lcnQuIFdhcyBzaW5kIGRhbm4gd2lyCkZhY2hpZGggbWVpbnQgbnVyOiBoaWVyIGluIGRlciB0cm9zdGxvc2VuIFd1ZXN0ZW4sIG1pdCB1bnNlcmVuIFByb2JsZW1lbiwgd2VubgpGYWNoaWRoIG1laW50IG51cjogSWhyIGRvY2ggZGVuIGdhbnpoZWl0bGljaGVuIEJsaWNrIHBmbGVndC4KRmFjaGlkaCBzaWVodCBEZWluZW4gYXVma2VpbWVuZGVuIFpvcm4gdW5kIGxhZWNoZWx0IGhvZWhuaXNjaC4KRmFjaGlkaCBzYWd0OiBFcyBpc3QgYXVjaCBzY2hvZW4sIGRhc3MgSWhyIEV1Y2ggYmVyZWl0cyBtaXQgbWVpbmVuIE5vdGl6ZW4gaW4KRmFjaGlkaCBzYWd0OiBkZXIgQmlibGlvdGhlayB2ZXJ0cmF1dCBnZW1hY2h0IGhhYnQsIElociBzZWh0LCBhdWNoIG1pciBpc3QgZGFzCkZhY2hpZGggc2FndDogbmljaHQgdmVyYm9yZ2VuIGdlYmxpZWJlbi4gRmFsbHMgSWhyIGRhcmF1cyBhbGxlcmRpbmdzIGV0d2EgenUKRmFjaGlkaCBzYWd0OiBzY2hsaWVzc2VuIHdhZ3QsIGRhc3MgbWljaCBkYXMgaW4gaXJnZW5kZWluZXIgV2Vpc2Ugd2VpdGVyCkZhY2hpZGggc2FndDogaW50ZXJlc3NpZXJ0LCBzbyBtdXNzIGljaCBzYWdlbiwgbmVpbi4KRHUgc2NodWJzdCBGYWNoaWRoLiBEaWVzZXIgcmFwcGVsdCBzaWNoIHdpZWRlciBhdWYsIHNlaW4gTGFlY2hlbG4gYWxsZXJkaW5ncwp2ZXJzY2h3aW5kZXQgbmljaHQgdm9uIHNlaW5lbSBHZXNpY2h0LCBpbSBHZWdlbnRlaWwgLi4uCkZhY2hpZGggc2FndDogRGllc21hbCB3ZXJkZSBpY2ggbmljaHQgd2FybmVuLCBkaWVzbWFsIHdlcmRlIGljaCBhdWNoIG5pY2h0CkZhY2hpZGggc2FndDogd2VpdGVyIGZvcnNjaGVuLiBXYXMgSWhyIGdlZnVuZGVuIGhhYnQsIGRhcyBnZWJ0IHJ1aGlnIHdlaXRlciwKRmFjaGlkaCBzYWd0OiBsYXNzdCBkaWUgd2VuaWdlbiBSZWNrZW4sIGRpZSB0YXBmZXIgdW5kIGR1bW0gZ2VudWcgc2luZCwKRmFjaGlkaCBzYWd0OiBydWhpZyBkcmF1ZmdlaGVuLgpEdSBlcmJsZWljaHN0IG9iIGRlciB6dXIgU2NoYXUgZ2V0cmFnZW5lbiBHbGVpY2hndWVsdGlna2VpdC4KRHUgc3RvdHRlcnN0OiBBYWFiZXIgZGFzIGhoZWlzc3QgamphLCBkZGRhcywgZGFzIC4uLgpGYWNoaWRoIHNhZ3Q6IEljaCBoYWJlIGVzIHNhdHQsIE1laXN0ZXIuIFB1bmt0dW0uIERpZXNtYWwgc2luZCBhbGxlLCBkaWUgZG9ydApGYWNoaWRoIHNhZ3Q6IGhpbnVudGVyIHdvbGxlbiwgYXVmIElocmUgZWlnZW5lIEZpbmRpZ2tlaXQgYW5nZXdpZXNlbi4gRnVlcgpGYWNoaWRoIHNhZ3Q6IG1laW5lbiBUZWlsLCBpY2ggd2VyZGUgSWhuZW4gbmljaHQgd2VpdGVyaGVsZmVuIC4uLiBrb2VubmVuLgpEdSBzY2h3ZWlnc3QuCkR1IHNhZ3N0OiBEaXIgaXN0IGtsYXIsIGxpZWJlciBGcmV1bmQsIHdhcyBkYXMgaGVpc3N0ID8gRHUgYnJpY2hzdCBkZW4gRWlkLApEdSBzYWdzdDogZGVuIER1IG1pciBlaW5tYWwgZ2Fic3QuIEplZGVyIGVyZmFlaHJ0IEhpbGZlIC4uLgpGYWNoaWRoIHNhZ3Q6IERhcyB3aXJkIHdlaXRlcmhpbiBnZWx0ZW4sIGRvY2ggbmljaHQgZnVlciBkZW4gRGllbmVyIFR5cGhvbnMsCkZhY2hpZGggc2FndDogdGllZiBkb3J0IHVudGVuIGluIGRlbSBHcmFiIGRlciBHZWlzdGVyd2VsdC4KRHUgc2Fnc3Q6IERhbm4gaGFiZW4gd2lyIHVucyBuaWNodHMgbWVociB6dSBzYWdlbi4gTGViZSB3b2hsIG1laW4gRnJldW5kLgpGYWNoaWRoIHp1Y2t0IG1pdCBkZW4gU2NodWx0ZXJuOiBJaHIga2VubnQgZGVuIEF1c2dhbmcuCkR1IHNhZ3N0OiBJY2ggd2VyZGUgbmljaHQgbWVociBpbiBkZW4gVHVybSB6dXJ1ZWNra2VocmVuLgpGYWNoaWRoIHNhZ3Q6IERhbm4gaGFidCBEYW5rIGZ1ZXIgRXVyZW4gQmVzdWNoLiBHcnVlc3N0IG1pciBkaWUgS2FtcGZzY2h3ZWluZS4KRW50dGFldXNjaHQgc2NodWV0dGVsc3QgRHUgZGVuIEtvcGYgdW5kIGVyaGVic3QgRGljaC4KRHUgb2VmZm5lc3QgZGllIFR1ZXIgdW5kIGJsaWNrc3Qgbm9jaCBlaW5tYWwgenVydWVjay4gRmFjaGlkaCBzb3J0aWVydCBpbgp2b2VsbGlnZXIgUnVoZSBlaW5pZ2UgUGFwaWVyZS4KRHUgc2V1Znp0IGVpbiBsZXR6dGVzIE1hbCwgZ2Voc3QgZHVyY2ggZGllIFR1ZXIgdW5kIHNjaGxpZXNzdCBzaWUuCkRhcyBkdW1wZmUgR2VyYWV1c2NoIGRlciBnZXNjaGxvc3NlbmVuIFR1ZXIgaGFsbHQgbm9jaCBldHdhcyBuYWNoLCBkYW5uCmhlcnJzY2h0IHdpZWRlciBTdGlsbGUgaW0gVHVybWdhbmcuIER1IHN0ZWlnc3QgZGllIFdlbmRlbHRyZXBwZSBuYWNoIHVudGVuLApncnVlc3N0IFppcnIsIGRlciB3aWxkIHVtIERpY2ggaGVydW1mbGF0dGVydCB1bmQgZHVyY2hzY2hyZWl0ZXN0IGRhcyBQb3J0YWwuCkdsZWlzc2VuZGUgSGVsbGlna2VpdCBlbXBmYWVuZ3QgRGljaCwgYWxzIERlaW5lIEhhdXQgZGVuIFZvcmhhbmcgZGVyIEhpdHplCmJlcnVlaHJ0LCBkZXIgZGllIHVuYmFybWhlcnppZ2UgV3Vlc3RlIGFua3VlbmRpZ3QuIEVpbiBsZXR6dGVzIE1hbCBzY2hhdXN0CkR1IERpY2ggdW0uCkR1IG11cm1lbHN0OiBMZWJlIFdvaGwsIEZyZXVuZC4KCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXR1ZWRlIGluIGgoYXJ0ZXMpLU1vKG5zdGVyKWxsIChBcmssICA4LiBKdWwgMjAwMiwgMjI6MjI6NTcpOgpFaW4ga2xlaW5lciBWZXJzdWNoIG1laW5lcnNlaXRzLCBhdWNoIHp1bSBUaGVtYSBLYW1wZnRha3RpayBiZWl6dXRyYWdlbi4gV2lyZApzaWNoZXIgZGVyIGVpbnppZ2UgVmVyc3VjaCBibGVpYmVuLCBlaW4gR2ViaWV0IG9obmUgUXVlc3QvTWluaXF1ZXN0L1pUCmFuenVzY2hsaWVzc2VuLiBOYSBndXQsIGVpbiBiaXNzY2hlbiBtdXNzIGljaCBkZW4gTWV0emxlcm4gZGllIFN1cHBlCnZlcnNhbHplbiwgZWluIGJpc3NnZW4gRm9yc2NoZW4gdGFldGUgTm90LCBtdXNzIGFiZXIgbmljaHQgc2Vpbi4gV2VyIGdhbnogaGFydAppc3QsIGtvbW10IG9obmUgYXVzLiBBYmVyOiBhbGxlaW5lIHN0ZXJidCBpaHIgKGhvZmZlbnRsaWNoIG1hY2hlIGljaCBtaWNoIGhpZXIKbmljaHQgbGFlY2hlcmxpY2ggOi0pICksIHNpY2hlciEKVmllbCBTcGFzcy4gRGllIFd1ZXN0ZSBsZWJ0IChpbiBadWt1bmZ0IHdhaHJzY2hlaW5saWNoIG9obmUgbWljaCA6LSkgKS4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXR1ZWRlIGluIGgoYXJ0ZXMpLU1vKG5zdGVyKWxsIChBcmssICA4LiBKdWwgMjAwMiwgMjI6MjM6NDkpOgp+IyEgcm49QXJrIHJ0PTEwMjYxNTk3Nzcgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDI2MTU5Nzc3CkFjaGphLCBub2NoIGVpbmUgYml0dGVyZSBFcmdhZW56dW5nLCBzbyBvaG5lIHdlaXRlcmVzIGtvbW10IG1hbiBuYXR1ZXJsaWNoCm5pY2h0IHJhbiwgaXN0IGtsYXIsIG9kZXI/IDotKQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFdHVlZGUgaW4gaChhcnRlcyktTW8obnN0ZXIpbGwgKFBpdGZhbGwsICA4LiBKdWwgMjAwMiwgMjI6MjQ6MzUpOgp+IyEgcm49QXJrIHJ0PTEwMjYxNTk3Nzcgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDI2MTU5Nzc3Cndlbm4gaWNoIGZ1ZXIgamVkZXMgbWFsIDUwIGNlbnQgYmVrb21tZW4gaGFldHRlIHdlbm4gamVtYW5kIGRpZXNlbiBzYXR6CnNhZ3QuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXR1ZWRlIGluIGgoYXJ0ZXMpLU1vKG5zdGVyKWxsIChBbWFyeWxsaXMsICA4LiBKdWwgMjAwMiwgMjI6MjU6NDEpOgp+IyEgcm49UGl0ZmFsbCBydD0xMDI2MTU5ODc1IHJnPWQud3Vlc3RlCn4jISB0aWQ9MTAyNjE1OTc3NwouLi4gZGFubiBoYWV0dGVzdCBkdSBqZXR6dCBuZW4gRXVybyB1bmQga29lbm50ZXN0IERpciBuZW4gNWVyLVBhY2sgTG9sbGlzCmxlaXN0ZW4/CgpBbWEqIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXR1ZWRlIGluIGgoYXJ0ZXMpLU1vKG5zdGVyKWxsIChHb3IsIDExLiBKdWwgMjAwMiwgMTM6MzQ6MTYpOgp+IyEgcm49QXJrIHJ0PTEwMjYxNTk3Nzcgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDI2MTU5Nzc3CklzdCBkYXMgamV0enQgbmVuIFZlcnNwcmVjaGVuIGRhcyBtYW4gbnVyIGFsbGVpbmUgc3RpcmJ0IHVuZCB6dSBtZWhyZXJlbgpuaWNodD8gCgpHb3Iga3JhbXQgc2VpbmVyIFNQaWVsZXIgcmF1cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRXR1ZWRlIGluIGgoYXJ0ZXMpLU1vKG5zdGVyKWxsIChBcmssIDExLiBKdWwgMjAwMiwgMTM6NDU6MDkpOgp+IyEgcm49R29yIHJ0PTEwMjYzODcyNTYgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDI2MTU5Nzc3CldhcyBzb2xsIGljaCBkYXp1IHNhZ2VuLCBwcm9iaWVydCBlcyBoYWx0IGF1cy4gTWlyIGZhbGxlbiBzaWNoZXIgbmljaHQgYWxsZQpmaWVzZW4gU3BpZWxlcnRyaWNrcyBlaW4gOi0pIEJlaSBkZXIgR2VsZWdlbmhlaXQgc29sbHRlIGljaCBhdWNoIG1hbAplcndhZWhuZW4sIGRhc3MgZXMgbm9jaCBlaW5lICJrbGVpbmUiIEJlbG9obnVuZyBnaWJ0LgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsZWluZXIgQnVnZml4IChBcmssICA4LiBBdWcgMjAwMiwgMjM6NTM6MDcpOgpEZXIgTGVpY2huYW0gdmVyc2Nod2luZGV0IGpldHp0IGF1Y2ggaXJnZW5kd2FubiBtYWwgd2llZGVyLCB3ZW5uIGVyIGxhbmdlCm5pY2h0IGFuZ2VncmlmZmVuIHd1cmRlICpyYWV1c3BlcioKQXVzcnVlc3R1bmdzcmV0dHVuZ3Nha3Rpb25lbiBzb2xsdGVuIGFsc28gd2llZGVyIG1vZWdsaWNoIHdlcmRlbi4gQWxsZXJkaW5ncwpkYXVlcnQgZGFzIHNjaG9uIGV0d2FzIDotKSBBdWNoIGRpZSBTYXJrb3BoYWdlIHNvbGx0ZW4gamV0enQgcmljaHRpZyB6dQppbnRlcnByZXRpZXJlbiBzZWluICpodXN0KgpBdWYgZWluIE5ldWVzLgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVzIHR1dCBzaWNoIHdhcyAuLi4gKEhpcnVkbywgMTIuIEF1ZyAyMDAyLCAyMTo1OToyMCk6ClZvbiB1bmJhZW5kaWdlbSBUYXRlbmRyYW5nIGdldHJpZWJlbmUgTWVuc2NoZW4gc2luZCBpbiBkZW4gdGllZnN0ZW4gU3VlZGVuIGRlcwp1bnMgYmVrYW5udGVuICBLb250aW5lbnRzIGdlZ2FuZ2VuLCB1bSBkb3J0IGlociBHbHVlY2sgdW5kIGdyb3NzZW4gUmVpY2h0dW0genUKZmluZGVuLiBJbSAgU2Nod2Vpc3NlICBpaHJlciAgRnVlc3NlIGhhYmVuIHNpZSBlaW5lIGtsZWluZSBTdGFkdCBhdWZnZWJhdXQgdW5kCndhcnRlbiBudW4gYXVmIHJlaXNlbHVzdGlnZSBUb3VyaXN0ZW4sIGRpZSBzaWNoIGRvcnQgZWlubWFsIHVtc2VoZW4gd29sbGVuLgoKSGlydWRvCgpQUzogRGFua2UgIGFuICBab29rLCAgVHdpbmdpLCBWYW5pb24sIEFyaywgQW1hcnlsbGlzIHVuZCBhbGxlIGFuZGVyZW4sIGRpZSBtaXIKICAgIGdlaG9sZmVuIGhhYmVuIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVzIHR1dCBzaWNoIHdhcyAuLi4gKEFtYXJ5bGxpcywgMTIuIEF1ZyAyMDAyLCAyMjowMDoxNik6Cn4jISBybj1IaXJ1ZG8gcnQ9MTAyOTE4MjM2MCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwMjkxODIzNjAKR3JhdHVsYXRpb24gdW5kIERhbmsgYW4gSGlydWRvIGZ1ZXIgZWluIHdlaXRlcmVzIG5ldWVzIFBsYWV0emNoZW4gaW4gZGVyCld1ZXN0ZSAuLi4gOi0pCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdWdmaXggR25vbSAoQXJrLCAxNC4gQXVnIDIwMDIsIDIyOjE3OjE2KToKRGVyIEdsYXNnbm9tIHR1dCB3aWVkZXIuIFdhcnVtIHRhdCBlciBuaWNodD8gRXMgd2FyIGtlaW5lIEthcmF3YW5lIGRhLgpTY2hlaW5iYXIgc2Nob24gc2VpdCBsYWVuZ2VyZW0uIERhIHNpZWh0IG1hbiBtYWwgd2llZGVyLCB3aWUgd2VuaWcgc28gRGV0YWlscwpnZW1lbGRldCB3ZXJkZW4gOi0pIERlciBHbm9tIGplZGVuZmFsbHMgaGF0IGRhcmF1cyBnZWxlcm50LgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcndpcnJ0ZXIgTGVpY2huYW0gKEFyaywgMTYuIFNlcCAyMDAyLCAyMjoyNjoyNik6Ck9rLCBpY2ggaGFiZSBub2NoIGVpbiB3ZW5pZyBhbSAiVmVyaGFsdGVuIG5hY2ggVG9kIiAoUmVzZXQpIGdlc2NocmF1YnQsIGRlcgpMZWljaG5hbSBzb2xsdGUgamV0enQgYXVjaCBuYWNoIGRlbSBUb2QgZXJzdG1hbCBlaW5lIHdvaGx2ZXJkaWVudGUgUGF1c2UgaW4KZGVyIFNjaGF0dGVud2VsdCBlaW5sZWdlbiB1bmQgZXJzdCBlaW5pZ2UgWmVpdCBuYWNoaGVyIHdpZWRlciBmdWVyIGVpbgpLcmFlZnRlbWVzc2VuICpoby1odW0qIHp1ciBWZXJmdWVndW5nIHN0ZWhlbi4KQXVmZ2V3ZXJ0ZXQga2FubiBtYW4gZGFzIG5pY2h0IG5lbm5lbiwgb2Rlcj8gOikKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gV3Vlc3RlbnNjaHdlcnQuLi4gKFpvb2ssIDIzLiBKYW4gMjAwMywgMTY6NDE6MTIpOgouLi4gaXN0IHRlbXBvcmFlciBuaWNodCBtZWhyIHp1IGhhYmVuLCBkYSBlcyBiZWkgSW5hdWdlbnNjaGVpbm5haG1lIGFscwpyZWljaGxpY2ggdW5iYWxhbmNpZXJ0IGFuZ2VzZWhlbiB3dXJkZS4gU29iYWxkIGVpbmUgZ2VhZW5kZXJ0ZSBWZXJzaW9uCmdlbmVobWlndCBpc3QsIHN0ZWh0IGRpZXNlIHdpZWRlciB6dXIgVmVyZnVlZ3VuZy4KCkdydXNzLCBab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbiBXdWVzdGVuc2Nod2VydC4uLiAoQW1hcnlsbGlzLCAyMy4gSmFuIDIwMDMsIDE4OjEyOjM2KToKfiMhIHJuPVpvb2sgcnQ9MTA0MzMzNjQ3MiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwNDMzMzY0NzIKSGksCgp3ZW5uIGVpbiBTcGllbGVyLCBkZXIgZGFzIFd1ZXN0ZW5zY2h3ZXJ0IGtlbm50L2thbm50ZSB1bmQgZXMgd2VpdGVyaGluIG51dHplbgptb2VjaHRlICpnKiBlaW5lIElkZWUgaGF0LCB3aWUgbWFuIGRhcyBHYW56ZSBhZW5kZXJuIHVuZCBtaXQgZWluZW0gc2lubnZvbGxlbgpLb256ZXB0IHZlcnNlaGVuIGthbm4sIGRhcmYgZXIgc2ljaCBnZXJuZSBhbiBtaWNoIHdlbmRlbiA6LSkKCkdydXNzLApBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaHVyYW1vdGggKEFyaywgIDYuIEp1biAyMDAzLCAyMDowNDozMSk6ClRodXJhbW90aCB6ZWlndCBudW4gYXVjaCBpbmRpdmlkdWVsbCBkaWUgRXJnZWJuaXNzZSBkZXIgU2NobGFjaHRlbiBhbiwgZGllCnNlaW5ldHdpbGxlbiBnZXNjaGxhZ2VuIHd1cmRlbi4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGh1cmFtb3RoIChBcmssICA2LiBKdW4gMjAwMywgMjA6MTA6NDkpOgp+IyEgcm49QXJrIHJ0PTEwNTQ5MjI2NzEgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDU0OTIyNjcxCi4uLiB6dW1pbmRlc3QgaW4gZGVyIG5hZWNoc3RlbiBTY2hsYWNodCAqaHVzdCoKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgQXJtZWVuIGRlciBGaW5zdGVybmlzIC4uLiAoQXJrLCAxNC4gSnVsIDIwMDMsIDE5OjU4OjAxKToKLi4uIHRyZXRlbiBqZXR6dCBldHdhcyBoYWV1ZmlnZXIgdW5kIHp1ZmFsbHNnZXN0ZXVlcnRlciBhdWYuIEFuYW5oJ3RhbmFtdW5oCmhhdCBzaWNoIGRhenUgZW50c2NobG9zc2VuLCB1bSBFdWNoIGV0d2FzIG1laHIgenUgZm9yZGVybi4gRGVubm9jaCBpc3QgZXMgbWlyCmdlbHVuZ2VuLCBkaWUgR2VzYW10emFobCBzZWluZXIgS3JpZWdlciBuaWNodCB6dSBlcmhvZWhlbiwgc2llIGRyYWVuZ2VuIGRhZnVlcgpkdXJjaGF1cyBtYWwgemFobHJlaWNoZXIgZHVyY2ggZGVuIFJpc3MgZGVyIFdlbHRlbi4KRGFmdWVyIHNvbGx0ZSBzaWNoIGRpZSBaZWl0LCBpbiBkZXIgaWhyIGV1Y2ggZHVyY2ggZGFzIFVudG90ZW5tZWVyIGthZW1wZnQsCmV0d2FzIHZlcmt1ZXJ6ZW4gLi4uIGdsYXViZSBpY2ggOi0pCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGphLi4uIChNYWFyZywgIDIuIEZlYiAyMDA0LCAxODo1OTowNyk6ClNhbmQsIFNhbmQsIG5pY2h0cyBhbHMgU2FuZCwgd29oaW4gRHUgYXVjaCBibGlja3N0LiBEdSBzdGVoc3QgbWl0dGVuIGluIGRlcgpoZWlzc2VuIFd1ZXN0ZSwgdW5kIGRpZSBTb25uZSBicmVubnQgYXVmIERpY2ggaGVydW50ZXIuIERlaW4gQmxpY2sgZmxpbW1lcnQsCnVuZCBEdSBoYXN0IFNjaHdpZXJpZ2tlaXRlbiwgRGljaCB6dSBvcmllbnRpZXJlbi4gSW4gd2VsY2hlIFJpY2h0dW5nIER1IGF1Y2gKc2NoYXVzdCBhbGxlcyBzY2hlaW50IGlyZ2VuZHdpZSBnbGVpY2ggYXVzenVzZWhlbi4gRHUgd2lzY2hzdCBEaXIgZHVyY2ggZGllCkF1Z2VuLCBkb2NoIGRhcyBtYWNodCBkYXMgR2FuemUgbnVyIG5vY2ggc2NobGltbWVyLiBEdSB3ZWlzc3QgbmljaHQsIHdpZSBlcwp3ZWl0ZXIgZ2VoZW4gc29sbC4gWndpc2NoZW4gYWxsIGRlbiBTYW5kZHVlbmVuIGtvbW1zdCBEdSBEaXIgcmljaHRpZyB2ZXJsYXNzZW4Kdm9yLCBlaW56aWcgdW5kIGFsbGVpbiBkZXIgaG9obGUgQmF1bXN0dW1wZiB2b3IgRGlyIGJpZXRldCBlaW4gd2VuaWcKQWJ3ZWNoc2x1bmcuCgpNZWluIERhbmsgZ2lsdCBBbWFyeWxsaXMsIFZhbmlvbiwgVHdpbmdpIHVuZCBkZXIgQmFsYW5jZSwgc293aWUgYWxsZW4gYW5kZXJlbgpkaWUgbWlyIG1pdCBSYXQgdW5kIFRhdCB6dXIgU2VpdGUgc3RhbmRlbi4KCkljaCB3dWVuc2NoZSB2aWVsIFNwYXNzLgoKR3J1c3MsCgogICBNYWFyZwogICAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUamEuLi4gKE1vcmdvdGgsICAyLiBGZWIgMjAwNCwgMTk6MDA6MTMpOgp+IyEgcm49TWFhcmcgcnQ9MTA3NTc0NDc0NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwNzU3NDQ3NDcKCkR1IHNwcmljaHN0IGRhbWl0IGVoIG51ciBFbGZlbiBhbiwgd2VubiBEdSB2b24gaG9obGVuIEJhdW1zdHVlbXBmZW4gcmVkZXN0CjopLi4uCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRqYS4uLiAoTWFhcmcsICAzLiBGZWIgMjAwNCwgMjI6MTQ6NDkpOgp+IyEgcm49TWFhcmcgcnQ9MTA3NTc0NDc0NyByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwNzU3NDQ3NDcKSGFsbG8genVzYW1tZW4sCgplaW5lIGdld2lzc2Ugc2Nod2luZ2VuZGUgS2xpbmdlIHNvbGx0ZSBudW4gbGFuZ3NhbWVyZW4gVGlwcGVybiBnZWdlbnVlYmVyCmV0d2FzIHRvbGVyYW50ZXIgc2Vpbi4KCkRhbmtlIGFuIE1hdGlzIHVuZCBSYXZlbnRocm9uZSBmdWVyIGRpZSBJZGVlLgoKTWFhcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsZWluZXMgVXBkYXRlIChNYWFyZywgMTEuIEZlYiAyMDA0LCAxNTo0ODo0NSk6CkhhbGxvIHp1c2FtbWVuLAoKd2VpbCBkaWUgQmFsYW5jZSBzbyBzY2huZWxsIHdhciBnaWJ0IGVzIG51biBiZWkgZWluZW0gZ2V3aXNzZW4gR3JhYnJhZXViZXIgYWIKdW5kIHp1IG1hbCB3YXMgTmV0dGVzICgqKSB6dSBob2xlbi4KCkdydXNzLAoKICAgTWFhcmcKCigqKSBXZXIgZGFzIGFsbGVzIG5ldHQgZmluZGV0IGthbm4gaWNoIGFsbGVyZGluZ3MgbmljaHQgc2FnZW4uIDtvKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2xlaW5lIEFlbmRlcnVuZyAoTWFhcmcsIDE2LiBGZWIgMjAwNCwgMTk6NTQ6MjcpOgpIYWxsbywKCk5QQywgd2VsY2hlIGRpZSBBbmdld29obmhlaXQgaGFiZW4sIHNpY2ggenUgdmVyc3RlY2tlbiwga29lbm5lbiBqZXR6dCBhdWNoCnNvZm9ydCB3aWVkZXIgZ2Vob2x0IHdlcmRlbiwgdW5kIG5pY2h0IGVyc3QgbmFjaCBSZXNldC4KCk1hYXJnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVWNobGF1cCEgKFpvb2ssICA1LiBNYXIgMjAwNCwgMjI6MjM6MDUpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEwNzg1MjE1NzQgcmc9bWFnaWVyLnVybGF1Ygp+IyEgdGlkPTEwNzg1MjE1NzQKV2lyZCBoaWVyIG51biBlbmRsaWNoIG1hbCBnZWdvc3NlbiB1bmQgZWluIHdlbmlnIGF1ZmdlcmFldW10PyA7KSkpCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBVY2hsYXVwISAoTXVhZGliLCAgNS4gTWFyIDIwMDQsIDIyOjI4OjU1KToKfiMhIHJuPVpvb2sgcnQ9MTA3ODUyMTc4NSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwNzg1MjE1NzQKZGFzIGthbm4gZG9jaCBudXIgRVIgYmVhbnR3b3J0ZW4Kd2VyIG5pY2h0IHdlaXNzIHdlciBFUiBpc3Q6IEVSIHN0ZWh0IGhpbnRlbiByZWNodHMgaGllcjoKaHR0cDovL21nLm11ZC5kZS9SZWdpb25lbi93dWVzdGUvYmV3b2huZXIuaHRtbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBVY2hsYXVwISAoQW1hcnlsbGlzLCAgNS4gTWFyIDIwMDQsIDIyOjMxOjE5KToKfiMhIHJuPVpvb2sgcnQ9MTA3ODUyMTc4NSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTEwNzg1MjE1NzQKR2Vnb3NzZW4gd2lyZCBoaWVyIG5pY2guIEF1ZmdlcmFldW10IGlzIHNjaG9uIDopCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgR2xhc2dub20gLi4uIChBcmssIDIyLiBNYXIgMjAwNCwgMTM6MjQ6MzIpOgouLi4gaXN0IHdpZWRlciBldHdhcyBwcmFlemlzZXIgYmVpIHNlaW5lbiBBdXNrdWVuZnRlbiwgZ2VyYWRlIHdhcyB6d2lzY2hlbiBkZW4KS2FyYXdhbmVuc3RvcHMgcGFzc2llcnRlLCB3YXIgemVpdHdlaXNlIHZlcnNjaGxlaWVydCA6KQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgR2xhc2dub20gLi4uIChBcmssIDIyLiBNYXIgMjAwNCwgMTM6MjU6MjApOgp+IyEgcm49QXJrIHJ0PTEwNzk5NTgyNzIgcmc9ZC53dWVzdGUKfiMhIHRpZD0xMDc5OTU4MjcyCkdpbHQgZnVlciBuZXVlIEdub21lLCBpY2ggdGF1c2NoZSBnZXJuZSBhdWYgQW5mcmFnZS4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVY2hsYXVwISAoUm9sYW5kLCAyOS4gTWFyIDIwMDQsIDE4OjU3OjQ5KToKfiMhIHJuPU11YWRpYiBydD0xMDc4NTIyMTM1IHJnPWQud3Vlc3RlCn4jISB0aWQ9MTA3ODUyMTU3NApIaWhvIGhhYiBtaXIgZGFzIG1hbCBhbmdlc2VoZW4uLi4Kd2FzIG1pciBkYSBiZXNvbmRlcnMgYXVmZ2VmYWxsZW4gaXN0LCBpc3QgZGVyIHNwcnVjaDoKCkhpZXIgc29sbHRlIGVpZ2VudGxpY2ggZWluZSBrbGVpbmUgQmVzY2hyZWlidW5nIGRlcyBvYmVuIGdlbmFubnRlbiBNYWdpZXJzCnN0ZWhlbiwgYWJlciBkYSBkZW0gbmljaHQgc28gaXN0LCBzY2hlaW50IGVzIHdvaGwgZWluIGdhbnogYmVzb25kZXJzIGZhdWxlcgpNYWdpZXIgenUgc2VpbiA6LSkgCgogLi4uIC4uIC4KOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1ZndlcnR1bmchIChNYWFyZywgMjYuIE1haSAyMDA0LCAxOTo0NjoxNik6CkVpbmUgZ2V3aXNzZSBXYWZmZSwgZGllIGVpbiBnZXdpc3NlciBOUEMgYmVpIHNpY2ggdHJhZWd0LCBpc3QgX2RldXRsaWNoXyEKYXVmZ2V3ZXJ0ZXQgd29yZGVuLgoKVmllbCBTcGFzcywKCiAgIE1hYXJnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzZWx0c2FtZSBCZW9iYWNodHVuZ2VuIChEaW5nZW5zLCAyNC4gSmFuIDIwMDUsIDE5OjQ5OjM1KToKU3RlbGx0IGV1Y2ggdm9yLCBpY2ggd2FyIG5ldWxpY2ggaW4gZGVyIFd1ZXN0ZSB1bnRlcndlZ3MsIHVtIGVpbmVuIGFsdGVuCkZyZXVuZCB6dSBiZXN1Y2hlbiwgZGVyIGRvcnQgd29obnQsIGFscyBtaXIgYW0gc3VlZGxpY2hlbiBIb3Jpem9udCBzZWx0c2FtZQpSYXVjaHplaWNoZW4gYXVmZmllbGVuLiBXYXMgZGllIHdvaGwgenUgYmVkZXV0ZW4gaGFiZW4/IEF1Y2ggaGFiZSBpY2gKR2VydWVjaHRlIGdlaG9lcnQsIGRhc3MgaW4gZGVyIE5hZWhlIHZvbiBHb2xkc3RyYW5kIGVpbiBXZWcgaW4gZGllIEJlcmdlCmVudGRlY2t0IHd1cmRlLiBJY2ggZGVua2UsIGljaCB3ZXJkZSBpbiBkZW4gbmFlY2hzdGVuIFRhZ2VuIGRlciBTYWNoZSBtYWwgYXVmCmRlbiBHcnVuZCBnZWhlbi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBzZWx0c2FtZSBCZW9iYWNodHVuZ2VuIChHcmltbWJvcm4sIDI0LiBKYW4gMjAwNSwgMTk6NTE6NDEpOgp+IyEgcm49RGluZ2VucyBydD0xMTA2NTkyNTc1IHJnPWQud3Vlc3RlCn4jISB0aWQ9MTEwNjU5MjU3NQpUdSBkYXMsIGthbm5zdCBkYW5uIGphIGhpZXIgYmVyaWNodGVuIHdhcyBEdSBnZXNlaGVuIGhhc3QuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFtbmVwZXRodWFzIEthdGFrb21iZW4gKEFyaywgMjYuIE1hciAyMDA2LCAxMjoxNToyNyk6CktsZWluZSBVbXNldHp1bmcgYXVzIGdlc3RyaWdlciBBbnJlZ3VuZzogbWFuIGJla29tbXQgYXVjaCBudW4gaW4gTm9ybWFsIGVpbmVuCkhpbndlaXMgYXVmIGRpZSBUb3RlbnJpbmdlLgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClF1ZXN0OiBFcmZvcnNjaGUgZGllIFB5cmFtaWRlbiAoWmVzc3RyYSwgMjIuIEFwciAyMDA2LCAxOTozMDoxMCk6CkF1cyBpcmdlbmRuZW0gR3J1bmQgc2NoZWludCBkaWUgZ2VuYW5udGUgUXVlc3QgbW9tZW50YW4gZXR3YXMgenUgYnVnZ2VuLCB3YWVyZQp2aWVsbGVpY2h0IGJlc3Nlciwgd2VubiBpaHIgZGVuIFF1ZXN0YmVzdWNoIGt1cnp6ZWl0aWcgdmVyc2NoaWVidCwgYmlzCmdla2xhZXJ0IGlzdCwgd2FzIGxvcyBpc3QuCgooaS5BLikgWmVzc3RyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhYiBpbiBkZXIgR2xhZGlzY2h1bGUgKEFtYXJ5bGxpcywgIDcuIE5vdiAyMDA2LCAyMToxOTo0MCk6Ckh1aHUsCgplaW4gZ2V3aXNzZXIgU3RhYiBpbiBkZXIgR2xhZGlzY2h1bGUgaGF0IHNpY2ggYXVmZ3J1bmQgZGVyIEJhbGFuY2UKKGhvZmZlbnRsaWNoPykgenUgRXVyZW0gVm9ydGVpbCB2ZXJhZW5kZXJ0LiBFcyBrb2VubnRlIGhpbGZyZWljaCBzZWluLCBkaWUKQWVuZGVydW5nIGdnZi4genUgY2hlY2tlbiA7KQoKR3J1c3MsCkFtYSAoYXVmIEJlZmVobCBkZXIgQmFsYW5jZSBoYW5kZWxuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcmxlZ3VuZyBkZXIgV3Vlc3RlbmFyZW5hIChaZXNzdHJhLCAgNi4gQXVnIDIwMDksIDE1OjUzOjM4KToKSHVodSwKCmljaCBoYWJlIGhldXRlIGRpZSBXdWVzdGVhcmVuYSAoYXVzIHRlY2huaXNjaGVuIEdydWVuZGVuKSB2b24gZGVyIFd1ZXN0ZSBpbgpkaWUgUmVnaW9uIFNjaGF0dGVud2VsdCB2ZXJsZWd0LiBEaWVzIGJldHJpZmZ0IG51ciBkZW4gS2FtcGZyYXVtIHNlbGJlci4KRGllIGdlb2dyYXBoaXNjaGUgTGFnZSBkZXIgQXJlbmEgaXN0IGhpZXJkdXJjaCBuaWNodCBiZXJ1ZWhydCwgaWhyIGZpbmRldCBzaWUKZG9ydCwgd28gc2llIGltbWVyIHdhci4KRXR3YWlnZSAtIG5ldWUgLSBQcm9ibGVtZSBpbiBkZXIgQXJlbmEga29lbm50IGlociBtaXIgbWVsZGVuLiBFcyBnaWJ0IGVpbmlnZQpGZWhsZXIgaW4gZGVyIEFyZW5hLCBkaWUgZG9ydCBzY2hvbiBsYWVuZ2VyIGV4aXN0aWVyZW4sIGRpZXNlIG1lbGRldCBiaXR0ZSBhbgpBbWFyeWxsaXMgdW5kIGRlbiBSTSBTY2hhdHRlbndlbHQuIEZlaGxlciBhdXNzZXJoYWxiIGRlcyBLYW1wZnJhdW1lcyBnZWhlbgpiaXR0ZSB3aWUgZ2VoYWJ0IGFuIFJNIFd1ZXN0ZSAvIEFtYXJ5bGxpcy4gRGFzIEhvZXJyb2hyIHdpcmQgZXVjaCBkYXMgZnVlciBkZW4KamV3ZWlsaWdlbiBSYXVtIGtvcnJla3QgYW56ZWlnZW4uCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWYWxnZXNzYSBsZWJ0IChFbm5veCwgMjAuIEF1ZyAyMDA5LCAwMzo1ODoyOCk6Ck9kZXIgc28gYWVobmxpY2gga2xpbmd0IGRlciBTbG9nYW4sIGRlbiBCZXdvaG5lciBkaWVzZXMga2xlaW5lbiBGbGVja2VucyBqZXR6dAphdWYgZGVuIExpcHBlbiBoYWJlbiwgd2VubiBzaWUgZHVyY2ggZGllIEdhc3NlbiB6aWVoZW4uCk5hY2hkZW0gVmFsZ2Vzc2EgZGVuIEhhdXB0cHJlaXMgZGVzIFdldHRiZXdlcmJlcyAiVHJvc3Rsb3Nlc3RlIFd1ZXN0ZW5zdGFkdCIKZ2V3b25uZSBoYXR0ZSwgd3VyZGUgYmVzY2hsb3NzZW4sIGRpZSBBdWZnYWJlIGRlciBSdW5kdW1lcm5ldWVydW5nIGluIGRpZQpIYWVuZGUgZWluZXIga3JlYXRpdmVuIFNwaWVsZXJpbiB6dSBnZWJlbi4gRGVyaW4gaGF0IGlocmUgUGhhbnRhc2llIHNwaWVsZW4KbGFzc2VuIHVuZCBWYWxnZXNzYSB3aWVkZXIgbWl0IExlYmVuIGVyZnVlbGx0LgpTY2hhdXQgRXVjaCBkYSBtYWwgdW0gdW5kIGdlbmllc3N0IGVpbmVuIG5pZSBkYSBnZXdlc2VuZW4gRGV0YWlscmVpY2h0dW5tLgoKV2lsbGtvbW1lbiB6dXJ1ZWNrLCBEZXJpbiB1bmQgZGFua2UgZnVlciBkaWUgdW5nZWhldXJlIHVuZCBzaWNoZXIgb2Z0Cm11ZWhzZWxpZ2UgQXJiZWl0CgpQLlMuIE1pbmlxdWVzdHMgJiBDbyBmb2xnZW4gaXJnZW5kd2FubiBkZW1uYWVjaHN0LgpFbm5veCwgIkRpZSBXdWVzdGUgbGVidCIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hOiBBdXNydWVzdHVuZ3NiZWdyZW56dW5nIChaZXNzdHJhLCAgMi4gTWFpIDIwMTAsIDIxOjAyOjUxKToKSHVodSwKCmRlciBXYWVjaHRlciBkZXIgV3Vlc3RlbmFyZW5hIGhhdCBlaW5lIGtsZWluZSBXZWl0ZXJiaWxkdW5nIGR1cmNobGF1ZmVuIHVuZApsYWVzc3QgamV0enQgbWVociBHZWdlbnN0YWVuZGUgKHNwZXppZWxsIEdlZ2Vuc3RhZW5kZSwgZGllIEdpbGRlbiBldWNoCmhlaW1saWNoIHp1c3RlY2tlbikgdW5hYmhhZW5naWcgdm9uIGRlciAzLUdlZ2Vuc3RhZW5kZS1SZWdlbCBpbiBkaWUgQXJlbmEuCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSTS1Qb3N0ZW4gKEVubm94LCAgNy4gU2VwIDIwMTEsIDExOjE5OjI0KToKSGFsbG8sCgp3aWUgWm9vayBqYSBzY2hvbiBlcndhZWhudGUgZ2VodCBlciBncmFkIG1pdCBkZXIgU2Vuc2UgZHVyY2ggZGllIGluYWt0aXZlbgpSTS1Qb3N0ZW4uIERhIGljaCBtaWNoIGRhbmsgZGVyIFBhcnR5IHdpZWRlciBtZWhyIGF1ZnMgTVVEIGtvbnplbnRyaWVyZW4gd2lsbAp3ZXJkZSBpY2ggYXVjaCB3aWVkZXIgbWVociBaZWl0IGZ1ZXIgZGVuIFJNIFd1ZXN0ZSBoYWJlbi4gQWxzbyB3ZW5uIGlocgp1ZWJlcnNjaGF1YmFyZSBQcm9ibGVtZSBvZGVyIFZvcnNjaGxhZWdlIGhhYnQsIGRhbm4gbWVsZGV0IEV1Y2ggYml0dGUuCkFuc29uc3RlbiBpbW1lciBzY2hvZW4gZGllIFd1ZXN0ZSBkdXJjaGthZW1tZW4sIG1hbiB3ZWlzcyBqYSBuaWUsIHdhcyBtYW4KZmluZGV0LgoKRW5ub3gsIG1hbHQgZWluIFBlbnRhZ3JhbW0gbWl0IFd1ZXN0ZW5zYW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaGlza3lmbGFzY2hlIChIdW1uaSwgMTkuIERleiAyMDEyLCAyMDoxNjowMSk6Ckh1aHUsCgplaW5lIFdoaXNreWZsYXNjaGUga29lbm50ZSBldnRsLiBlaW4gd2VuaWcgYW5kZXJzIHJlYWdpZXJlbiBhbHMgYmlzaGVyLgpQcm9ibGVtZSBiaXR0ZSBhbiBtaWNoIG1lbGRlbi4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJZ25vcmllcmVuIHZvbiBBcmVuZW4tU2Nyb2xsIChaZXNzdHJhLCAxOC4gTWFyIDIwMTQsIDIyOjUzOjI3KToKV2VyIGlyZ2VuZHdlbGNoZSBBcmVuZW4gaWdub3JpZXJlbiB3aWxsLCBzb2xsdGUgZm9sZ2VuZGUgbmV1ZSBFaW50cmFlZ2UKdmVyd2VuZGVuOgoKKiBLYW1wZnNjcm9sbCBpbSBGZWdlZmV1ZXI6IC5hcmVuYS5mZWdlZmV1ZXJzY3JvbGwKKiBEdWVsbGF1ZmZvcmRlcnVuZ2VuIGltIEZlZ2VmZXVlcjogLmFyZW5hLmZlZ2VmZXVlcmR1ZWxsCiogS2FtcGZhbmt1ZW5kaWd1bmdlbiBpbSBGZWdlZmV1ZXI6IC5hcmVuYS5mZWdlZmV1ZXIKKiBBbmt1ZW5kaWd1bmdlbiB2b24gSmFzcGVycyBTY2hsYWNodGZlbGQ6IC5hcmVuYS5zY2hsYWNodGZlbGQKKiBTZWhlcndldHRiZXdlcmIgaW4gZGVyIFd1ZXN0ZW5hcmVuYTogLmFyZW5hLnNlaGVyd2V0dGJld2VyYgoqIEhlcmF1c2ZvcmRlcnVuZ2VuIGluIGRlciBXdWVzdGVuYXJlbmE6IC5hcmVuYS5nbGFkaWF0b3IKKiBTcGllbGVyZHVlbGxlIGluIGRlciBXdWVzdGVuYXJlbmE6IC5hcmVuYS5kdWVsbAoKClplc3N0cmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvbGRyYXVzY2ggaW4gVmFsZ2Vzc2EhIChOb3RzdHJvbSwgIDEuIEp1bCAyMDE0LCAwMToyNzoyNyk6CkV4dHJhYmxhdHQgKysrIEV4dHJhYmxhdHQgKysrIEV4dHJhYmxhdHQgKysrIEV4dHJhYmxhdHQgKysrIEV4dHJhYmxhdHQKCiAgICAgICAgICAgICAgICAgICBHT0xEUkFVU0NIIElOIFZBTEdFU1NBIQoKV2llIHdpciBhdXMgZ3V0IGluZm9ybWllcnRlbiBLcmVpc2VuIGVyZmFocmVuIGtvbm50ZW4sIHd1cmRlIGluIGRlcgpXdWVzdGVuc3RhZHQgVmFsZ2Vzc2EgR29sZCBnZWZ1bmRlbi4gRGVyIGdlbmF1ZSBGdW5kb3J0IHd1cmRlIHVucwpsZWlkZXIgbmljaHQgdmVycmF0ZW4sIGFiZXIgYmVpIGRlbSBhdXNicmVjaGVuZGVuIEdvbGRmaWViZXIgc29sbHRlCmphIGJhbGQgamVkZXIgZGllIE1vZWdsaWNoa2VpdCBoYWJlbiwgYWxzIGdlbWFjaHRlciBNYW5uIChvZGVyIEZyYXUpCmVpbiBMZWJlbiBpbiBSZWljaHR1bSB6dSBnZW5pZXNzZW4uCgpXaXIgd3VlbnNjaGVuIGFsbGVuIHByb3NwZWt0aXZlbiBHb2xkZ3JhZWJlcm4gZWluZSBlcmZvbGdyZWljaGUgU3VjaGUhCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90c3Ryb20sIEF1c2hpbGZzLVJlcG9ydGVyLgoKRXh0cmFibGF0dCArKysgRXh0cmFibGF0dCArKysgRXh0cmFibGF0dCArKysgRXh0cmFibGF0dCArKysgRXh0cmFibGF0dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIEJyaWVmIGltIFd1ZXN0ZW5zYW5kIC4uLiAoTm90c3Ryb20sIDI4LiBKdWwgMjAxNCwgMDE6MDc6MTIpOgpWZXJlaHJ0ZXIgV2FuZGVyZXIsCgppY2ggd2VyZGUgZGllc2VuIEJyaWVmIGVpbmVtIFZvZ2VsIGFudmVydHJhdWVuLCBkZW4gaWNoIGZhbmdlbiBrb25udGUuIEVzCmlzdCwgc28gdmVybXV0ZSBpY2gsIG1laW5lIGxldHp0ZSBDaGFuY2UgYXVmIFJldHR1bmcuCgpJY2ggaG9lcnRlIEdlcnVlY2h0ZSB1ZWJlciBBYmVudGV1cmVyLCBkaWUgdmVybWlzc3Qgd3VyZGVuLiBTaWUgd2FyZW4gdm9yCmVpbiBwYWFyIFdvY2hlbiBhdWZnZWJyb2NoZW4sIHVtIGVpbiBHcmFiIGFtIFN1ZWR3ZXN0cmFuZCBkZXIgZ3Jvc3NlbgpXdWVzdGUgenUgb2VmZm5lbiAodW5kIHNpY2ggc2VpbmVyIFNjaGFldHplIHp1IHZlcnNpY2hlcm4sIGRlbmtlIGljaCkuCk1hbiBiYXQgbWljaCwgZWluZSBlaHJlbndlcnRlIEthcGF6aXRhZXQgYW4gTnllbGFzIEFrYWRlbWllLCBuYWNoIGlobmVuIHp1CnNlaGVuLiBVbmQgaWNoIGZhbmQgc2llLiBJY2ggZmFuZCBXaXNzZW4sIGRhcyBzZWl0IGxhbmdlbSB2ZXJzY2hvbGxlbiBnYWx0LgpVbmQgaWNoIGZhbmQgU0lFLgoKRG9jaCBzbyB2aWVsIFdpc3NlbiBmZWhsdCBub2NoLCB1bmQgaWNoIGthbm4gbmljaHQgbWVociBoaW51bnRlci4gU0lFIGhhdAptaWNoIGJlbWVya3QuIFNpZSB3b2xsdGUgd2lzc2VuLCB3YXMgaW4gYWxsIGRlbiBKYWhydGF1c2VuZGVuIGRyYXVzc2VuCnBhc3NpZXJ0IHdhci4gU2llIGdpZXJ0ZSBuYWNoIGVpbmVyIFNlZWxlLCBkaWUgc2llIC0tCgpTZWVsZT8gTmVpbiwgbmVpbi4gTWVpbmUgU2VlbGUgaXN0IG1laW4hIFJhdXMgYXVzIG1laW5lbSBLb3BmISBJY2gsIGRlcgpob2NoZ2VsZWhydGUgTWFnaWVyIC4uLiB3aWUgaGllc3MgaWNoIGRvY2g/IEVnYWwsIE5hbWVuIHNpbmQgbnVyIEhpbGZzbWl0dGVsLApkaWUgZGVyIEdlbGVocnRlIG5pY2h0IG1laHIgYnJhdWNodCwgZXIgaGF0IGJlcmVpdHMgZGVuIFNjaHJpdHQgZ2V0YW4genUKSG9laGVyZW0sIHp1IFdpc3NlbiwgV2lzc2VuLCBpY2ggbXVzcyBlcyBlcmxhbmdlbiwgU0lFIHZlcmxhbmd0LCBkYXNzIGljaCAtLQoKV2lzc2VuPyBKYSwgamEuIEljaCBzZWxic3QgbmljaHQsIHp1IGdlZmFlaHJsaWNoLiBSYXVzIGF1cyBtZWluZW0gS29wZiEKU29ubmUgYnJlbm50LCBtdXNzIG1pY2ggdmVyc3RlY2tlbiwgZGllc2VyIEJ1c2NoIHZlcmJpcmd0IG1pY2ggaWhyLCBkdXJjaApkaWVzZW4gUGZhZCBtdXNzIGplZGVyIGtvbW1lbiwgZXMgZnVlaHJ0IGtlaW4gYW5kcmVyIFBmYWQgenUgSUhSLCBtdXNzCldhbmRlcmVyIGZpbmRlbiwgZGllIFdpc3NlbiBmdWVyIG1pY2ggZmluZGVuLCBtdXNzIFdhbmRlcmVyIHp1IElIUiAtLQoKV2FuZGVyZXI/IEphLCBqYS4gU2NocmVpYmUgQnJpZWYsIHVtIHdlbGNoZSBhbnp1bG9ja2VuLiBWb2dlbC4gQW4gVm9nZWwKYmluZGVuLiBWb2dlbCBmbGllZ3QgaW1tZXIgenVtIFdhc3Nlciwgd2lyZCBnZWZ1bmRlbiB3ZXJkZW4uIFdhbmRlcmVyIGtvbW1lbi4KV2FuZGVyZXIgZHVtbSwgbmljaHQgd2lzc2VuIHZvbiBJSFIuIFZpZWxsZWljaHQgc2llIGF1cyBtZWluZW0gS29wZiwgd2VubgppY2ggaWhyIGJyaW5nZSBPcGZlci4gVmllbGxlaWNodCBzaWUgaWhyIFdpc3NlbiBkYWZ1ZXIgZ2lidC4gSmEsIGphLgoKS29tbXQhIEphLCBqYS4gS29tbXQsIGVybGFuZ3QgV2lzc2VuISBOaWNodCByZWlubGFzc2VuIGluIEtvcGYsIFdhaG5zaW5uCndlbm4gR2Vpc3QgenUgc2Nod2FjaC4gV2lzc2VuIGVybGFuZ3QsIGZ1ZXIgbWljaCEKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgbmljaHQgd2ljaHRpZywgbmllIGd1dCwgd2VubiB6dSB2aWVsIHdlaXNzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3JhdWVuaGFmdGVyIEZ1bmQgaW0gV3Vlc3RlbmdyYWIgKE5vdHN0cm9tLCAgMy4gRGV6IDIwMTQsIDAwOjE2OjI4KToKSG9tYmVydCBlaWx0ZSBkZW4gZHVua2xlbiBHYW5nIGVudGxhbmcuIEZvcnQsIG51ciBub2NoIGZvcnQgdm9uIGRpZXNlbQpzY2hyZWNrbGljaGVuIE9ydCBtaXQgc2VpbmVuIGdydXNlbGlnZW4gV2FuZG1hbGVyZWllbiwgZGVyIHVuaGVpbWxpY2hlbgpHcmFia2FtbWVyIHVuZCBvYmVuIGFuIGRlciBPYmVyZmxhZWNoZSBkZXIgYnJlbm5lbmRlbiBTb25uZS4KSW0gSGFsYmR1bmtlbCBzdHJhdWNoZWx0ZSBlciwga29ubnRlIHNpY2ggbWl0IGxldHp0ZXIgS3JhZnQgYW4gZXR3YXMKTWV0YWxsaXNjaGVtIGZlc3RoYWx0ZW4uIERvY2ggcGxvZXR6bGljaCBnYWIgYXVjaCBkYXMgbmFjaCwgZWluIGt1cnplcywKbmVydmVuemVocmVuZGVzIFF1aWV0c2NoZW4sIHVuZCBIb21iZXJ0IHNhc3MgYXVmIGRlbiBCb2RlbmZsaWVzZW4uIEluCmRpZXNlbSBNb21lbnQgZmllbCBldHdhcyBhdWYgaWhuLCBlcyB3YXIgbmljaHQgc2VociBncm9zcywgYWJlciBiZXN0aW1tdAp0b2VkbGljaC4gSG9tYmVydCBzY2h3YW5kZW4gZGllIFNpbm5lLiBTZWluZSBsZXR6dGVuIGJld3Vzc3RlbiBHZWRhbmtlbgpkcmVodGVuIHNpY2ggbnVyIHVtIGVpbmVzOiBXbyBrYW0gcGxvZXR6bGljaCBkaWVzZXIgU2Nob2tvbGFkZW5nZXJ1Y2gKaGVyPwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlaSBQcm9ibGVtZW4gaW4gZGVyIEFyZW5hIC4uLiAoTm90c3Ryb20sICA0LiBKYW4gMjAxNSwgMTY6MjM6MDkpOgouLi4gYml0dGUgbmljaHQgd3VuZGVybi4KCmVzIHd1cmRlIGVpbmUga2xlaW5lIFJlcGFyYXR1ciBhbiBkZXIgQXJlbmEgbm9ldGlnLCBzbyBkYXNzIG1hbiBudW4gbWl0CmJlc3RpbW10ZW4gUXVlc3RnZWdlbnN0YWVuZGVuIGF1cyBIZWxzIFRlbXBlbCBpbiBkaWUgQXJlbmEgZGFyZiwgYXVjaAp3ZW5uIGRhcyBtZWhyIGFscyBkcmVpIFN0dWVjayBzaW5kLgoKV2VubiBhbiBkZXIgQXJlbmEgbnVuIGlyZ2VuZGV0d2FzIG5pY2h0IG1laHIgZnVua3Rpb25pZXJ0LCB3YXMgdm9yaGVyCmdla2xhcHB0IGhhdCwgc2FndCBtaXIgYml0dGUgQmVzY2hlaWQuIFdlbm4gYW4gZGVyIEFyZW5hIG51biBpcmdlbmRldHdhcwpuaWNodCBtZWhyIGZ1bmt0aW9uaWVydCwgd2FzIHNjaG9uIHZvcmhlciBnZWJ1Z2d0IGhhdCwgZGFubiBzYWd0IGVzIG1pcgpiaXR0ZSBhdWNoLgoKRGFua2UhCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3VuZHVycyBXdWVzdGVud2VnIChOb3RzdHJvbSwgIDYuIEphbiAyMDE1LCAwOTo0NToxMCk6Ckh1aHUsCgphdWYgR3VuZHVycyBXdWVzdGVud2VnIHZvbiBQb3J0IFZhaW4gbmFjaCBTdWVkZW4gaW4gZGllIFd1ZXN0ZSB3dXJkZW4KYXVzIHRlY2huaXNjaGVuIEdydWVuZGVuIGVpbmlnZSBSZW5vdmllcnVuZ3NhcmJlaXRlbiBub2V0aWcuIEZhbGxzCmplbWFuZGVtIGF1ZmZhZWxsdCwgZGFzcyBldHdhcyBuaWNodCBtZWhyIGZ1bmt0aW9uaWVydCwgd2FzIHZvcmhlcgpnaW5nLCBtb2VnZSBlci9zaWUgZXMgbWlyIGJpdHRlIG1pdHRlaWxlbi4KCkRhbmtlIQpOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhdW1zdHVlbXBmZSAmIENvLiAoTm90c3Ryb20sICA4LiBKYW4gMjAxNSwgMTU6NTI6MDEpOgpIdWh1LAoKZWluIGdld2lzc2VyIEJhdW1zdHVtcGYgd2FyIGVpbiBwYWFyIFRhZ2UgdW56dWdhZW5nbGljaCB1bmQgaXN0IG51biB3aWVkZXIKYmV0cmV0YmFyLiBEYW5rIGFuIEFyc29uLgoKRGFua2UgYXVjaCBhbiBtZWhyZXJlIGJlc29uZGVycyBmbGVpc3NpZ2UgQnVnbWVsZGVyIHVuZCAtYWJzZXR6ZXIsIGRlcmVuClR5cG9zLCBGZWhsZXIgdXN3LiBpY2ggaW4gZGVuIGxldHp0ZW4gVGFnZW4ga29ycmlnaWVydCBoYWJlIQoKCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2V3aXNzZSBmaW5nZXJsb3NlIEhhbmRzY2h1aGUgLi4uIChOb3RzdHJvbSwgMTUuIEphbiAyMDE1LCAxNTo0MTo0OCk6Ci4uLiBibGVpYmVuIGJlaSBkZXIgQmxpdHpoYW5kIGRlciBEdW5rZWxlbGZlbi1HaWxkZSBudW4gdW52ZXJzZWhydC4gVmVybXV0bGljaApwcm9maXRpZXJlbiBhdWNoIEthdHplbmtyaWVnZXIgdm9uIGRlciBSZXBhcmF0dXIuIEZyb2hlcyBNZXR6ZWxuIQoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQeXJhbWlkZW5wdXR6IChOb3RzdHJvbSwgIDUuIEZlYiAyMDE1LCAxMDowMDozOCk6Ckh1aHUsCgplcyB3dXJkZSBhdXMgdGVjaG5pc2NoZW4gR3J1ZW5kZW4gbm9ldGlnLCBpbiBkZW4gUHlyYW1pZGVuIGVpbiB3ZW5pZyBDb2RlCnp1IHVlYmVyYXJiZWl0ZW4gKHVtIFZlcmx1c3QgYW4gQXVzcnVlc3R1bmcgdW5kIFNwaWVsZXJuIHp1IHZlcmhpbmRlcm4pLgpTb2xsdGUgc2ljaCBldHdhcyBudW4gYW5kZXJzIHZlcmhhbHRlbiBhbHMgdm9yaGVyIG9kZXIgUHJvYmxlbWUgYXVmdHJldGVuLAptZWxkZXQgRXVjaCBiaXR0ZSBiZWkgbWlyLgoKRGFua2UsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3Jvc3NwdXR6IGluIERqZWxpYmVieSAoTm90c3Ryb20sICA2LiBGZWIgMjAxNSwgMTE6Mjc6MzUpOgpIdWh1LAoKZ2FueiBEamVsaWJlYnkgaXN0IHZvbiBlaW5lciBkcmluZ2VuZCBub2V0aWdlbiAodGVjaG5pc2NoZW4pIFJlaW5lbWFjaGFrdGlvbgpiZXRyb2ZmZW4uIEdhbnogRGplbGliZWJ5PyBOZWluLCBlaW4ga2xlaW5lciBUZWlsIGxpZWd0IGluIGRlbiBTY2hhdHRlbiB1bmQKaXN0IHNwYWV0ZXIgZHJhbi4gSmVkZW5mYWxscyBzb2xsdGUgc2ljaCBmdWVyIEV1Y2ggbmljaHRzIGFlbmRlcm4uIFdlbm4gZG9jaCwKZGFubiBiaXR0ZSB3aWUgZ2VoYWJ0OiBTYWd0IG1pciBCZXNjaGVpZC4KCk5vdHN0cm9tIFtBZXJtZWwgaG9jaGdla3JlbXBlbHRdLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdyb3NzcHV0eiBpbiBEamVsaWJlYnkgKEJyemZ0dGwsICA2LiBGZWIgMjAxNSwgMTI6MTE6MDIpOgp+IyEgcm49Tm90c3Ryb20gcnQ9MTQyMzIxODQ1NSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTE0MjMyMTg0NTUKSGFzdCBEdSBlbmRsaWNoIGRpZXNlcyBTZWt0ZW5kb21pemlsIGRvcnQgcmF1c2dlZmVndD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR3Jvc3NwdXR6IGluIERqZWxpYmVieSAoTm90c3Ryb20sICA2LiBGZWIgMjAxNSwgMTM6MjQ6NTgpOgp+IyEgcm49QnJ6ZnR0bCBydD0xNDIzMjIxMDYyIHJnPWQud3Vlc3RlCn4jISB0aWQ9MTQyMzIxODQ1NQpEdSBoYXN0IGVpbmVuIHRvdGFsIG51ZWNodGVybiB1bmQgbGFuZ3dlaWxpZyBhdXNzZWhlbmRlbiBSYXVtIGJldHJldGVuLiBEYXMKZWluemlnZSwgd2FzIGVzIGhpZXIgYW4gTW9lYmVsbiBnaWJ0LCBpc3QgZWluIFNjaHJlaWJ0aXNjaCwgendlaSBTdHVlaGxlIHVuZAplaW4gaG9oZXMgUmVnYWwuIFdhcyBqZWRvY2ggc29mb3J0IGV4dHJlbSBhdWZmYWVsbHQsIGlzdCBkaWUgRmFyYmUgdm9uIFdhbmQsCkRlY2tlIHVuZCBCb2RlbiwgZGllIHNpbmQgbmFlbWxpY2ggd2Vpc3MuIEhpbnRlciBkZW0gU2NocmVpYnRpc2NoIHNpdHp0Cm5vcm1hbGVyd2Vpc2UgSHV0c2NoYXQsIGRlciBWZXJ3YWx0ZXIgZGVyIEdpbGRlLgpFcyBnaWJ0IGVpbmVuIHNpY2h0YmFyZW4gQXVzZ2FuZzogbm9yZG9zdGVuLgpIdXRzY2hhdCBkZXIgVmVyd2FsdGVyIGRlcyBDaGFvcy4KRGllIHN0aW5rZW5kZSB1bmQgaGFsYnZlcndlc3RlIExlaWNoZSBlaW5lcyBEdW5rZWxlbGZlbi4KCkR1IGZyYWdzdCBIdXRzY2hhdCBuYWNoIEF1ZmdhYmUuCkh1dHNjaGF0IGFudHdvcnRldDogRHUgaGFzdCBkaWUgR2lsZGVuYXVmZ2FiZSAiS2xlbW1lIGRhcyBoZWlsaWdlIFBhY2sgYWIiCm5vY2ggbmljaHQgYW5nZWZhbmdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBXdWVzdGUgbGVidCEgKE5vdHN0cm9tLCAgOC4gRmViIDIwMTUsIDIyOjMyOjM5KToKSHVodSwKCmluIGRlbiBFaW5nZXdlaWRlbiBkZXIgU2FuZHd1ZXN0ZSBoYXQgc2ljaCBldHdhcyBnZXRhbi4gRWluIHZlcmZsaXh0CmZ1bW1lbGlnZXIgRmVobGVyIGhhdHRlIGVzIHNpY2ggZG9ydCB2b3IgdmVycnVjaHRlbiBzaWViZW4gSmFocmVuCmJlcXVlbSBnZW1hY2h0LiBOdW5tZWhyIGplZG9jaCBpc3Qgc2VpbmUgWmVpdCBhYmdlbGF1ZmVuLCB1bmQgZGllClNhbmR3dWVzdGUgc29sbHRlIG51biBzbyBmdW5rdGlvbmllcmVuLCB3aWUgZXMgZGVyZWluc3QgZ2VwbGFudCB3YXIuCldlciBhbHNvIG5vY2ggU2FuZGhhaWVuIGJlZ2VnbmV0LCBvYndvaGwgZXIgc2ljaCBhdWYgZWluZW0gV2VnCmJlZmluZGV0LCBvZGVyIHdlciBhdWYgdW5sZXNiYXJlIFNjaGlsZGVyIHRyaWZmdCwgZGVyIG1lbGRlIHNpY2gKYml0dGUgYmVpIG1pci4KCkJlc29uZGVyZW4gRGFuayBhbiBBcmF0aG9ybiBmdWVyIGhlbGRlbmhhZnRlLCB1bmVybXVlZGxpY2hlIHVuZCB2b3IKYWxsZW0gc2F1YmVyZSBIaWxmZS4KCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW4gZWluZW0gQmF1bXN0dW1wZiAuLi4gKE5vdHN0cm9tLCAxMC4gRmViIDIwMTUsIDExOjQ1OjU4KToKLi4uIGthbm4gbWFuIG51biBpbiBiZXN0aW1tdGVuIEZhZWxsZW4gYXVjaCBtaXQgd2VuaWdlciBUaXBwYXJiZWl0IHNlaW4gWmllbAooYWxzbyBkZW4gbmFlY2hzdGVuIFJhdW0pIGVycmVpY2hlbi4KCkZyb2VobGljaGVzIFJ1bXJlbm5lbiwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaYXViaXMgdW5kIGRpZSBBcmVuYSAoTm90c3Ryb20sIDE4LiBNYXIgMjAxNSwgMTI6MzA6MTApOgpIdWh1LAoKZ3V0ZSBOYWNocmljaHQgZnVlciBaYXViaXM6IFdlbm4gbWFuIGluIGRlciBBcmVuYSB0YWV0aWcgd2VyZGVuIG1vZWNodGUsCm11c3MgbWFuIG51biB3ZW5pZ2VyIGRhcmF1ZiBhY2h0ZW4sIHdvIHVuZCB3YW5uIG1hbiBiZXN0aW1tdGUgU2FjaGVuCmFud2lyZnQuCgpEYW5rIGFuIFJoaXVuYSBmdWVycyBNZWxkZW4gdW5kIFRlc3RlbiEKCkZyb2hlcyBNZXR6ZWxuIQpOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuemllaHNhY2hlbiAuLi4gKE5vdHN0cm9tLCAgMS4gQXByIDIwMTUsIDExOjE1OjE1KToKLi4uIGRpZSBrZWluZSBSdWVzdHVuZyBzaW5kLCB3ZXJkZW4gZ2VyYWRlIHVlYmVyYXJiZWl0ZXQuIEZhbGxzIGFuIHNvbGNoZW4KR2VnZW5zdGFlbmRlbiBzZWx0c2FtZXMgVmVyaGFsdGVuIChvZGVyIGdhciBGZWhsZXIpIGF1ZnRhdWNoZW4sIHNhZ3QgbWlyCmJpdHRlIEJlc2NoZWlkLgoKRGFua2UsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVub3ZpZXJ1bmdzYXJiZWl0ZW4gKE5vdHN0cm9tLCAxOC4gQXByIDIwMTUsIDIwOjI5OjI4KToKSHVodSwKCmF1cyBnZWdlYmVuZW0gQW5sYXNzIGhhYmUgaWNoIG5hY2ggQWJzcHJhY2hlIG1pdCBkZXIgSGVpbHVuZ3NiYWxhbmNlCmRhcyBTaGVyaWZmc29mZmljZSB1bmQgZWluZSBkb3J0IGVyaGFlbHRsaWNoZSBtb2JpbGUgVGFua2UgaW4gdGVjaG5pc2NoZXIKdW5kIG5pY2h0LXRlY2huaXNjaGVyIEhpbnNpY2h0IHJlbm92aWVydC4KCkRpZSBtb2JpbGUgVGFua2UgZnVua3Rpb25pZXJ0IG51biBldHdhcyBhbmRlcnMsIGVpbmlnZSBTcGllbGVyIGR1ZXJmdGVuCmVpbiB3ZW5pZyB1bmVyZnJldXQgc2Vpbi4gR2VuZXJlbGwgaXN0IGRpZSBUYW5rbGVpc3R1bmcgYWJlciB1bnZlcmFlbmRlcnQsCndlbm4gbWFuIGFsbGVzIHJpY2h0aWcgbWFjaHQuIChOZWluLCBtZWhyIGRhcmYgaWNoIG51biB3aXJrbGljaCBuaWNodApzYWdlbi4pCgpFdmVudHVlbGxlIFByb2JsZW1lLCB1bmVyd2FydGV0ZXMgVmVyaGFsdGVuIG9kZXIgZ2FyIEJ1Z3MgbWVsZGV0IElociBiaXR0ZQp3aWUgdWVibGljaCBiaXR0ZSBhbiBtaWNoLgoKRGFua2UhCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJpc2NoIGdlc2FldWJlcnRlciBTdW1wZiAoTm90c3Ryb20sIDE5LiBBcHIgMjAxNSwgMDM6MjA6NDkpOgpIdWh1LAoKYXVzIHRlY2huaXNjaGVuIEdydWVuZGVuIHd1cmRlIGVzIG5vZXRpZywgR3VuZHVycyBTdW1wZiB6dSBlbnRrYWxrZW4uIEFuCmVpbmVyIFN0ZWxsZSB3ZXJkZW4gRXVyZSBUcmlnZ2VyIG51biBzcGlubmVuLCBhYmVyIGRhZnVlciB3dXJkZSBhdWNoIGVpbgpUeXBvIGdlZml4dC4gQW5zb25zdGVuIHNvbGx0ZSBkaWUgZnVlciBFdWNoIHVuc2ljaHRiYXJlIFRlY2huaWsgdW50ZXIgZGVtClN1bXBmIG51biB3aWVkZXIgd2llIGdlc2NobWllcnQgbGF1ZmVuLgoKV2llIHVlYmxpY2g6IFdlciBCdWdzIGZpbmRldCwgc2FndCBiaXR0ZSBCZXNjaGVpZC4KCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJlbmFwcm9ibGVtZSAuLi4gKE5vdHN0cm9tLCAyMC4gQXByIDIwMTUsIDEwOjQ4OjI5KToKLi4uIHNvbGx0ZW4gbnVuIGJlaG9iZW4gc2Vpbi4gRGFuayBhbiBTdGFuaWxhIHVuZCBab29rLgoKV2VubiBpcmdlbmR3YXMgZG9ydCBuaWNodCBzbyBmdW5rdGlvbmllcnQgd2llIGVyd2FydGV0LCBzYWd0IG1pciBiaXR0ZSAod2llCnVlYmxpY2gpIEJlc2NoZWlkLgoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gSGFsc3NjaHV0eiAuLi4gKE5vdHN0cm9tLCAxMS4gSnVuIDIwMTUsIDE3OjM4OjE5KToKLi4uIHNvbGx0ZSAgbnVuIHdpZWRlciBrb3JyZWt0IGZ1bmt0aW9uaWVyZW4uIEZhbGxzIGplbWFuZCBnZWdlbnRlaWxpZ2VzCmZlc3RzdGVsbHQsIG1lbGRlIGVyL3NpZS9lcyBtaXIgYml0dGUgc2VsYmlnZXMuCgpEYW5rZSwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUYW5qaWFucyBpbiBkZXIgQXJlbmEgLi4uIChOb3RzdHJvbSwgMjYuIEp1biAyMDE1LCAxNTowMzo1MSk6Ci4uLiBtdWVzc2VuIG51biBiZWkgS29rb2xvcmVzIG5pY2h0IG1laHIgYmlzIDMgemFlaGxlbi4KVmllbCBTcGFzcyEKCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZSBsYW5nZSBUb2dhIChOb3RzdHJvbSwgMjAuIEF1ZyAyMDE1LCAxMTo0MjoxMCk6Ci4uLiB3dXJkZSByZXBhcmllcnQgdW5kIGRpZSBpbiBVbWxhdWYgYmVmaW5kbGljaGVuIEV4ZW1wbGFyZSBhdXNnZXRhdXNjaHQuCkFsc28gbmljaHQgd3VuZGVybiwgd2VubiBJaHIgZGllICJhdXNnZXpvZ2VuIiBoYWJ0LgoKV2VubnMgUHJvYmxlbWUgZGFtaXQgZ2lidDogYml0dGUgd2llIHVlYmxpY2ggbWVsZGVuLgoKRGFua2UsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWVuZGVydW5nZW4gaW0gQmF1bXN0dW1wZiAoTm90c3Ryb20sIDMwLiBBdWcgMjAxNSwgMTU6NDQ6NTcpOgpIdWh1IQoKRXMga2FtIGluIGRlbiBsZXR6dGVuIFRhZ2VuIHp1IG1laHJlcmVuIFByb2JsZW1lbiBpbSBCYXVtc3R1bXBmLCBkaWUgYWxsZQptaXQgZWluZW0gZ2V3aXNzZW4gS3JhZnRmZWxkIHp1IHR1biBoYXR0ZW4uIEljaCBoYWJlIG1pciBtYWwgbWVpbmUgZmV1ZXJmZXN0ZQpBc2Jlc3R1bnRlcndhZXNjaGUgYW5nZXpvZ2VuLCBiaW4gZGVuIENvZGUgZHVyY2hnZWdydXNlbHQgdW5kIGhhYmUgZWluZSAuLi4Ka2xlaW5lIEFlbmRlcnVuZyB2b3JnZW5vbW1lbi4KCkZhbGxzIGVpbiB1bWhlcnN0cmVpZmVuZGVyIGxhZXN0aWdlciBOUEMgZG9ydCBhdWYgZWluZSBiZXN0aW1tdGUgV2Vpc2UKa2VpbmUgTGV1dGUgbWVociB1bWJyaW5ndCwga29lbm50IGlociB3b2hsIGRhbWl0IGxlYmVuLgoKRmFsbHMgaXJnZW5kd2VsY2hlIEJlZ2xlaXQtTlBDcyBlaW5lciBHaWxkZSBrZWluZSBhbHRlbiBGcmF1ZW4gbWVocgpiZXN1Y2hlbiBrb2VubmVuLCBzYWd0IG1pciBiaXR0ZSBCZXNjaGVpZC4KCkZhbGxzIGlyZ2VuZHdlbGNoZSBaYXViZXJzcHJ1ZWNoZSwgZGllIGlociAqdm9yKiBlaW5lbSBLcmFmdGZlbGQgYXVmCkRpbmdlIGltIFJhdW0gKmhpbnRlciogZGVtIEtyYWZ0ZmVsZCBzcHJlY2h0LCBuaWNodCBmdW5rdGlvbmllcmVuLCBkYW5uCndhciBkYXMgdm9yaGVyIHZvbSBFcmdlYm5pcyBoZXIgYXVjaCBzY2hvbiBzbywgc29sbHRlIG51biBhYmVyIGltbWVyaGluCmtlaW5lbiBSWkcgbWVociBnZWJlbi4KCkJlaSBhbGxlbiBhbmRlcmVuIFZlcmhhbHRlbnNhZW5kZXJ1bmdlbiBkb3J0IHNhZ3QgbWlyIGJpdHRlIEJlc2NoZWlkLgoKCkF1c3NlcmRlbSBrYW5uIG1hbiBudW4gYmVzdGltbXRlIEFtdWxldHRlIGF1cyBkZW0gR2ViaWV0IGF1Y2ggaW4gZWluZXIKZ3JhbW1hdGlrYWxpc2NoIGtvcnJla3RlbiBGb3JtIGFuc3ByZWNoZW4sIGFsc28gei5CLiAibGVnZSBzY2hhcmxhY2hyb3RlcwphbXVsZXR0IGluIG11ZWxsc2FjayIuCgpBdWNoIGhpZXI6IHNvbGx0ZSBlcyBQcm9ibGVtZSBnZWJlbiwgc2FndCBtaXIgYml0dGUgQmVzY2hlaWQuCgoKRGFua2UsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWmF1YmVydHJhZW5rZSAoTm90c3Ryb20sICA3LiBTZXAgMjAxNSwgMTQ6MzU6NTgpOgpIdWh1LAoKZWluIHBhYXIgWmF1YmVydHJhZW5rZSB3dXJkZW4gdm9uIG1pciByZXBhcmllcnQgdW5kIGZ1bmt0aW9uaWVyZW4gbnVuCmhvZmZlbnRsaWNoIHdpZWRlci4gRmFsbHMgbmljaHQsIHNhZ3QgYml0dGUgQmVzY2hlaWQuCgpEYW5rZSwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWkgZWluZXIgYWx0ZW4gRnJhdSAuLi4gKE5vdHN0cm9tLCAgNy4gU2VwIDIwMTUsIDE0OjU1OjE1KToKLi4uIHNvbGx0ZW4gbnVuIGtlaW5lIEJvaW5nLVJlc2V0cyBtZWhyIHN0YXR0ZmluZGVuLiBBbnNvbnN0ZW4gYml0dGUgQmVzY2hlaWQKZ2ViZW4gKHdpZSBpbW1lcikuCgpEYW5rZSwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbiBlaW5lbSBCYXVtc3R1bXBmIC4uLiAoTm90c3Ryb20sIDEwLiBTZXAgMjAxNSwgMjE6MjM6MjcpOgouLi4gd3VyZGVuIHZlcnNjaGllZGVuZSBEaW5nZSByZXBhcmllcnQuIFVuZCBkYW5uIG5vY2htYWwgcmVwYXJpZXJ0LiBXZW5uCmpldHp0IHdhcyBuaWNodCBtZWhyIGZ1bmt0aW9uaWVydCwgd2FzIG1hbCBoYWV0dGUgZ2VoZW4gc29sbGVuIHVuZCBzb3dpZXNvCm5vY2ggbmllIGxpZWYsIGRhbm4gYml0dGUsIHdpZSB1ZWJsaWNoLCBCZXNjaGVpZCBzYWdlbi4KCkRhbmtlLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3aWVkZXIgQWxrb2hvbCAuLi4gKE5vdHN0cm9tLCAyOC4gU2VwIDIwMTUsIDEyOjIyOjU4KToKQW4gZWluZXIgYmVsaWVidGVuIFdoaXNreWZsYXNjaGUgd3VyZGUgZWluZSBrbGVpbmVyZSBLb3JyZWt0dXIgbm90d2VuZGlnLgpXZW5uIElociBFdWNoIG5ldWUgRmxhc2NoZW4gaG9sdCwgc29sbHRlbiBkaWVzZSBudW4gZXR3YXMgcmVzaXN0ZW50ZXIKZGFnZWdlbiBzZWluLCBzaWNoIHNjaGxhdWVyd2Vpc2Ugc2VsYnN0IGVpbiBCZWluIHp1IHN0ZWxsZW4uCgpIdGgsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWnV3YWNocyB1bnRlciBzZW5nZW5kZXIgU29ubmUgKE5vdHN0cm9tLCAyNS4gT2t0IDIwMTUsIDIwOjM5OjM4KToKICAgIEh1aHUsCgppY2ggaGFiZSBkaWUgRWhyZSwgUmhvdmFuIGFscyBuZXVlbiBSZWdpb25zbWl0YXJiZWl0ZXIgZGVyIFd1ZXN0ZSBiZWdydWVzc2VuCnp1IGR1ZXJmZW4sIHVuZCBmcmV1ZSBtaWNoIHNjaG9uIGF1ZiBuZXVlLCBzcGFubmVuZGUgdW5kIGh1bW9ydm9sbGUgR2ViaWV0ZSEKCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2V3aXNzZSBaYWVobmUgLi4uIChOb3RzdHJvbSwgMzAuIE9rdCAyMDE1LCAxMTozMjoxNCk6Ci4uLiBzaW5kIG51biBldHdhcyBlbG9xdWVudGVyLCB3ZW5uIGVzIGRhcnVtIGdlaHQsIHdhcnVtIHNpZSBzaWNoIG5pY2h0Cnp1ZWNrZW4gbGFzc2VuLiBadW1pbmRlc3QgbmV1Z2VtZXR6ZWx0ZSBaYWVobmUuCgpIdGgsCkF1c2hpbGZzemFobmFyenQgTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NobWFsIGJlaSBNYWFyZyAuLi4gKE5vdHN0cm9tLCAzMC4gT2t0IDIwMTUsIDExOjU1OjM4KToKSHVodSwKClRhbGFuaXMgaGF0IG1laW5lIEF1Zm1lcmtzYW1rZWl0IGF1ZiBkZW4gVW1zdGFuZCBnZWxlbmt0LCBkYXNzIGVpbmUgdXJhbHRlClJlc3RyaWt0aW9uLCBhdWYgZGVyIGRpZSBadWxhc3N1bmcgZHVyY2ggZGllIEJhbGFuY2UgYmVydWh0ZSwgaW4gZWluZW0KZ2V3aXNzZW4gWmFobiBuaWNodCB1bWdlc2V0enQgd2FyLiBCZXZvciBlcyB6dSBncm9lc3NlcmVuIFphaG5zY2htZXJ6ZW4Ka29tbXQsIGhhYmUgaWNoIHNpZSBtYWwgbmFjaGdlcnVlc3RldC4KClBlY2ggZnVlciBQZWx6ZnVlc3NlLgoKTm90LSAic29sbCBpY2ggbm9jaG1hbCBtaXQgZGVtIEJvaHJlciByYW4/IiAtc3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgd2llZGVyIEFyZW5hIChOb3RzdHJvbSwgMzEuIERleiAyMDE1LCAxMjowOTo0Nyk6CiAgICBIdWh1LAoKS2xlcmlzIG11ZXNzZW4gYWIgc29mb3J0IGluIGRlciBBcmVuYSBuaWNodCBtZWhyIHNjaGVpbmhlaWxpZyBtaXR6YWVobGVuLgoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbG9oemlya3VzIChOb3RzdHJvbSwgMzEuIEphbiAyMDE2LCAyMzoxNDozNik6CiAgICBIdWh1LAoKaW0gTWFyYXRhc2VuY2FtcCB2b24gSGFra2lra3Qgd2VodCBlaW4gd2VuaWcgZnJpc2NoZXIgV2luZCAodW5kIGZyaXNjaGVyCkNvZGUpIGR1cmNoIGRpZSBaZWx0ZS4gVW50ZXJuZWhtdW5nc2Zyb2hlIEFiZW50ZXVyZXIgaGFiZW4gZGllIEdlbGVnZW5oZWl0LAplaW5lbiBHZWdlbnN0YW5kIHp1IGVyd2VyYmVuLCBkZXIgMTIgSmFocmUgYWJnZWtsZW1tdCB1bmQgbnVuIGRldXRsaWNoCnVlYmVyYXJiZWl0ZXQgd2llZGVyIHp1IGhhYmVuIGlzdC4gQXVzc2VyZGVtIHN0ZWh0IG5hdHVlcmxpY2ggYXVjaCBkb3J0CndpZWRlciBqZW1hbmQgaGVydW0sIGRlciBvaG5lIEV1Y2ggdG90YWwgYXVmZ2VzY2htaXNzZW4gaXN0LgoKVmllbCBTcGFzcyBkb3J0IQpOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJvZXNlciBBZmZlISAoTm90c3Ryb20sIDI4LiBNYXIgMjAxNiwgMTA6NDU6MTkpOgpIdWh1LAoKZGVyIEFmZmUgYXVzIER1cmlhbnMgWm9vIHZlcm5pY2h0ZXQga2VpbmUgR2VnZW5zdGFlbmRlIG1laHIuIERhbmtlIGFuIFJob2Fra2EKZnVlcnMgTWVsZGVuLgoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQm9lc2VyIEFmZmUhIChBcmssICAyLiBBcHIgMjAxNiwgMjA6Mjg6NTYpOgp+IyEgcm49Tm90c3Ryb20gcnQ9MTQ1OTE1NDcxOSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTE0NTkxNTQ3MTkKV2FyIGRvY2ggbHVzdGlnIChhdWNoIHdlbm4gZXMgaW1tZXIgbWljaCBzZWxic3QgYmV0cm9mZmVuIGhhdHRlLiBBYmVyIG9rLCBkYW5uCmRhcmYgZXIgbnVuIG9lZnRlciByYXVzIDopCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCb2VzZXIgQWZmZSEgKE1vb25zaGluZSwgIDIuIEFwciAyMDE2LCAyMDo0MDozMSk6Cn4jISBybj1BcmsgcnQ9MTQ1OTYyMTczNiByZz1kLnd1ZXN0ZQp+IyEgdGlkPTE0NTkxNTQ3MTkKV2llc28gd3Vzc3RlIGljaCwgZGFzcyAtIHdlbm4gQXJrIGVpbiBIYXVzdGllciBoYXQgLSBkYXMgbnVyIGVpbiBBZmZlIHNlaW4Ka2Fubj8gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXdWVzdGVucGZhZCAyLjAgIChTYXJheSwgIDMuIEFwciAyMDE2LCAyMzo1MjozMyk6CkljaCBoYWJlIGVpbmUgd2ljaHRpZ2UgTWl0dGVpbHVuZyB6dSBtYWNoZW4uCkhldXRlIHdvbGx0ZSBpY2ggd2llZGVyIGVpbm1hbCBkZW4gbGFuZ3dlaWxpZ2VuIFBmYWQgendpc2NoZW4gU3RlaW53dWVzdGUgdW5kCkdsYWRpYXRvcmVuc2NodWxlIGVudGxhbmdidW1tZWxuIHVuZCBtaWNoIGFuIHNlaW5lciBUcm9zdGxvc2lna2VpdCBlcmZyZXVlbiAtCmFiZXIgd2VpdCBnZWZlaGx0LgpFaW4gd2VuaWcgdHJvc3Rsb3Mgd2lya3QgZGVyIFBmYWQgbWl0IHNlaW5lbSB2aWVsZW4gU2FuZCwgZGVyIEhpdHplIHVuZCBkZW4KS2FrdGVlbiB6d2FyIGltbWVyIG5vY2gsYWJlciB3aWUgaWNoIGZlc3RzdGVsbGVuIGR1cmZ0ZSwgaGF0IHNpY2ggc28gZWluaWdlcwphdWYgaWhtIHZlcmFlbmRlcnQuCkVzIGdpYnQgRGluZ2UgYXVmIGlobSB6dSBlbnRkZWNrZW4uIEx1c3RpZ2UgdW5kIHNwYW5uZW5kZSBEaW5nZSB1bmQgYXVjaApMZWJld2VzZW4sIGRpZSBiaXMgdm9yIEt1cnplbSBub2NoIG5pY2h0IGRhIGdld2VzZW4gc2luZC4KU3Bhbm5lbmQsIGRhY2h0ZSBpY2ggbWlyLiBXYXMgaXN0IGRlbm4gaGllciBwYXNzaWVydD8KV2llIG1pciBhdXMgc2ljaGVyZXIgUXVlbGxlIHp1Z2V0cmFnZW4gd3VyZGUsIGhhdCBkaWVzIGFsbGVzIG1pdCBlaW5lciBzZWhyCmhlaXNzZW4gQXVmZ2FiZSB6dSB0dW4sIGZ1ZXIgZGllIHdpZWRlcnVtIEZyb2RvLCBkZXIgbmV0dGUgSG9iYml0IGF1cwpPcmtoYXVzZW4sIHZlcmFudHdvcnRsaWNoIGlzdC4KSWNoIHdlaXNzIGphIG5pY2h0LCB3YXMgaWhyIHNvIHZvcmhhYnQsIGFiZXIgaWNoIHdlcmRlIG1pY2ggc2NobGV1bmlnc3QgenUgaWhtCmJlZ2ViZW4sIHVtIGhlcmF1c3p1ZmluZGVuLCB3YXMgZXMgbWl0IGRpZXNlciBoZWlzc2VuIFNhY2hlIGF1ZiBzaWNoIGhhdC4KU2FyYXksIGRpZSBhbiBkaWVzZW4gaGVpc3NlbiBEaW5nZW4gdmllbGxlaWNodCBuaWNodCBnYW56IHVuc2NodWxkaWcgaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFd1ZXN0ZW5wZmFkIDIuMCAgKE5vdHN0cm9tLCAgMy4gQXByIDIwMTYsIDIzOjUzOjU4KToKfiMhIHJuPVNhcmF5IHJ0PTE0NTk3MjAzNTMgcmc9ZC53dWVzdGUKfiMhIHRpZD0xNDU5NzIwMzUzCiAgICBIdWh1IFNhcmF5IHVuZCBSaG92YW4sCgplaW5lbiBnYW56IGxpZWJlbiBEYW5rIG1vZWNodGUgaWNoIG5pY2h0IG51ciBmdWVyIGVpbiBHZWJ1cnRzdGFnc2dlc2NoZW5rIGRlcgpiZXNvbmRlcmVuIEFydCBhdXNzcHJlY2hlbiwgc29uZGVybiBhdWNoIGRhZnVlciwgZGFzcyBJaHIgYmVpZGVuIGVpbiB1cmFsdGVzClN0dWVjayBXdWVzdGUgaW4gbXVzdGVyZ3VlbHRpZ2VtIG5ldWVuIEdsYW56IGVyc3RyYWhsZW4gbGFzc3QuIEljaCBob2ZmZSwgZGllClNwaWVsZXIgaGFiZW4gZ2VuYXVzbyB2aWVsIFNwYXNzIGRhcmFuIHdpZSBpY2ggYmVpbSBUZXN0ZW4gdW5kIEFibmVobWVuIQoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGb3J0c2V0enVuZzogRGVyIGVuZGxvc2UgS2FtcGYgendpc2NoZW4gR3V0IHVuZCBCb2VzZSAoTm90c3Ryb20sIDEzLiBBcHIgMjAxNiwgMjA6NTU6NTkpOgpSb2Vua2Vsd3VtcCBzY2hhdXRlIHp1bSBIaW1tZWwuIEthbSBkYSBSZWdlbiBhdWY/PwpOZWluLCBlcyB3YXIgbnVyIHdpZWRlciBkZXIgQm9zcy4gTGVtYm9sZCBrb25udGUgZ2FueiBzY2hvbiB1bmdlZHVsZGlnIHdlcmRlbiwKd2VubiBtYW4gaGludGVyIGRlbSBaZWl0cGxhbiBoZXIgaGlua3RlLiBXYXJ1bSBrYW0gZGVubiBrZWluIEFiZW50ZXVyZXIsIGRlcgpoZWxmZW4ga29lbm50ZT8gV2FyIGRpZSBHZWdlbmQgaGllciB3aXJrbGljaCBzbyBhYmdlbGVnZW4/IE9kZXIgaGF0dGUgc2ljaApub2NoIG5pY2h0IHJ1bWdlc3Byb2NoZW4sIGRhc3MgZGVyIFNwaWVscGxhdHogZWluIHVucnVlaG1saWNoZXMgRW5kZSBnZWZ1bmRlbgpoYXR0ZT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGb3J0c2V0enVuZzogRGVyIGVuZGxvc2UgS2FtcGYgendpc2NoZW4gR3V0IHVuZCBCb2VzZSAoTm90c3Ryb20sIDE0LiBBcHIgMjAxNiwgMTA6NDY6MTUpOgp+IyEgcm49Tm90c3Ryb20gcnQ9MTQ2MDU3Mzc1OSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTE0NjA1NzM3NTkKSHVodSwKCmRhIGVpbmlnZSBGcmFnZW4gZGF6dSBrYW1lbjogUm9lbmtlbHd1bXAgd2FydGV0IGFuIGRlciBvZXN0bGljaGVuIEt1ZXN0ZSBkZXIKV3Vlc3RlIGF1ZiBFdWNoLCBnYW56IGluIGRlciBOYWVoZSB2b24gV2FyZ29ucyBSZXR0dW5nc3NjaHdpbW1lcnR1cm0uCgpIdGgsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJlaXRhZywgZGVyIDEzLiAoTm90c3Ryb20sIDEzLiBNYWkgMjAxNiwgMTA6Mzk6NDIpOgpIdWh1LAoKYmVpIGJlaWRlbiBRdWVzdC1OUENzIHZvbiAiSGVpbGlnZSBCZXV0ZSIgaGVycnNjaHRlIGVpbmlnZXMgYW4gendlaWRpbWVuc2lvLQpuYWxlciBWZXJ3aXJydW5nLCB3YXMgZGFzIEdld2FlaHJlbiB2b24gQmVsb2hudW5nZW4gYmV0cmlmZnQuIEJlaWRlIEJ1Z3MKc29sbHRlbiBudW4gYmVob2JlbiBzZWluLiBXZXIgbGVlciBhdXNnZWdhbmdlbiBpc3Q6IEJpdHRlIGJlaSBtaXIgbWVsZGVuLgoKRGFua2UsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJvZXNlciBBZmZlISAoTm90c3Ryb20sIDE2LiBNYWkgMjAxNiwgMjE6NTk6MzcpOgp+IyEgcm49Tm90c3Ryb20gcnQ9MTQ1OTE1NDcxOSByZz1kLnd1ZXN0ZQp+IyEgdGlkPTE0NTkxNTQ3MTkKSHVodSwKCmVpbiB3ZWl0ZXJlciBHZWdlbnN0YW5kc3Zlcmx1c3Qgd3VyZGUgc29lYmVuIGF1c2dlYmF1dC4gRGFuayBhbiBSZWdvbm5hIGZ1ZXJzCk1lbGRlbi4gQWZmZW5iZXNpdHplciBzY2hpY2tlbiBiaXR0ZSBlaW5mYWNoIGRlbiBBZmZlbiB3ZWcgdW5kIGhvbGVuIGlobiBuZXUuCgpEYW5rZSwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHdW5kdXJzIFN1bXBmIC4uLiAoTm90c3Ryb20sIDE5LiBNYWkgMjAxNiwgMjI6NTE6NTQpOgouLi4ga29lbm50ZSBiZWkgQmVudXR6ZXJuIGJlc3RpbW10ZXIgU2NyaXB0c3lzdGVtZSBSYWV1bWUgbmljaHQgZXJrZW5uZW4gdW5kCnNvbWl0IFNjcmlwdGUgbmljaHQgZnVua3Rpb25pZXJlbiBsYXNzZW4uIERhZnVlciBpc3RzIHdpZWRlciBlaW4gVHlwbyB3ZW5pZ2VyLgoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5lIFd1ZXN0ZW5yb3NlIC4uLiAoTm90c3Ryb20sICAyLiBKdW4gMjAxNiwgMjM6MTM6MzMpOgouLi4gaXN0IG51biB3aXJrc2FtIHBmbHVlY2tiYXIuIEJpdHRlIG1lbGRldCBzb3dhcyBydWhpZywgZGFtaXQgZXMgYmVob2Jlbgp3ZXJkZW4ga2Fubi4KCkxpZWJlbiBEYW5rIGFuIEh1bW5pLgoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbiBkZXIgQXJlbmEgLi4uIChOb3RzdHJvbSwgIDYuIEp1biAyMDE2LCAxMzo0NDo1OSk6Ci4uLiBtdWVzc2VuIFphdWJlcmVyIG51biBub2NoIHdlbmlnZXIgbWl0emFlaGxlbi4KRGFua2UgYW4gRWxkaXIgZnVlcnMgTWVsZGVuLgoKU2Nob2VuZXMgV29jaGVuZW5kZSEKSm9jaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW4gZGVyIFNwaWVscHlyYW1pZGUgLi4uIChOb3RzdHJvbSwgMjAuIEF1ZyAyMDE2LCAxNDo0MzoyMyk6Ci4uLiBoYWJlIGljaCBlaW4gcGFhciBoYWVzc2xpY2hlIEJ1Z3MgZ2VmaXh0LiBNb2VnbGljaGVyd2Vpc2UgZnVua3Rpb25pZXJ0CmRvcnQgbnVuIGVyc3RtYWwgd2llZGVyIGFsbGVzLiBCaXR0ZSB0ZXN0ZW4gdW5kIHNjaHJlaWVuLCBmYWxscyBpY2ggbm9jaG1hbApyYW5tdXNzLiBEYW5rZSEKCkJlc29uZGVyZW4gRGFuayBhdWNoIGZ1ZXIgZGllIEdlZHVsZCBkZXIgYmV0cm9mZmVuZW4gU3BpZWxlciwgYXVzc2VyZGVtIGFuCkFyYXRob3JuIGZ1ZXIgVW50ZXJzdHVldHp1bmcuCgpEYXVtZW5kcnVlY2tlbmQsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29obGVuLUthcmwgLi4uIChOb3RzdHJvbSwgMjAuIEF1ZyAyMDE2LCAxNToxNzoxNyk6Ci4uLiBrYWVtcGZ0IG51biBzbyB3aWUgdXJzcHJ1ZW5nbGljaCBiZWFic2ljaHRpZ3QuIERhcyBzb2xsdGUgRXVjaCBhYmVyIG5pY2h0CnN0b2VyZW4sIGVpZ2VudGxpY2guCgpIdGgsCk5vdHN0cm9tIFt3dWVyZGUgYmVpbSBUeXBvLWZpeGVuIGxpZWJlciBtYWwgR29sZCBmaW5kZW4gc3RhdHQgRyoqbGxlIC4uLl0uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgd2llZGVyIEhhdXN0aWVyc29yZ2VuIChOb3RzdHJvbSwgMjguIEF1ZyAyMDE2LCAxOTo1MDoyNyk6CiAgICBIdWh1LAoKaWNoIGhhYmUgZ2VyYWRlIGVpbmVuIEJ1ZyBhbSBIYXVzdGllcnplcnRpZmlrYXQgZ2VmaXh0LCBkdXJjaCBkZW4gbWFuIGRlbgpLYWVmaWcgc2VpdCBFbmRlIEp1bGkgbmljaHQgbWVociBoZXJ2b3Job2xlbiBrb25udGUgKGRlciBCdWcgd2FyIHZpZWwKYWVsdGVyLCB3dXJkZSBhYmVyIGR1cmNoIGFuZGVyZW4gRmVobGVyIG1hc2tpZXJ0KS4KCkZhbGxzIGRhcyBQcm9ibGVtIGJlaSBFdWNoIGJlc3RlaHQsIGtvZW5udCBJaHIgYWxzbyBFdWVyIFplcnRpZmlrYXQgYXVmCmRpZSB1ZWJsaWNoZW4gV2Vpc2VuIGVybmV1ZXJuIHVuZCBkYW5uIGRlbiBLYWVmaWcgd2llZGVyIGhlcmF1c2hvbGVuLgoKSHRoLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhdXN0aWVyZSB1bmQgVGVtcGVsIChOb3RzdHJvbSwgMzEuIEF1ZyAyMDE2LCAxODo0Njo0OSk6Ckh1aHUsCgpkYXMgSGF1c3RpZXJ6ZXJ0aWZpa2F0IHVuZCBkZXIgQWZmZSBlcnpldWdlbiBudW4ga2VpbmUgUlpHcyBtZWhyIGltClN0YW1tdGVtcGVsIHZvbiBEamVsaWJlYnkuCkRhbmsgYW4gQmxhY2tiZWF1dHkgZnVlcnMgZmluZGVuIHVuZCB0ZXN0ZW4uCgpCZWkgd2VpdGVyZW4gUHJvYmxlbWVuIG1pdCBkZW4gSGF1c3RpZXJlbiBtZWxkZXQgRXVjaCBiaXR0ZSBiZWkgbWlyLgoKRGFua2UsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIEF1c3J1ZXN0dW5nc3Zlcmx1c3QgLi4uIChOb3RzdHJvbSwgMjIuIEZlYiAyMDE3LCAxMDo0NjozNSk6Ci4uLiB3dXJkZSB2b24gbWlyIGF1c2dlYmF1dC4gSWhyIGtvZW5udCBhbHNvIHdpZWRlciBvaG5lIFJldWUgc3RlcmJlbi4KClZpZWwgU3Bhc3MsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW0gTVEtR2ViaWV0ICJIZWlsaWdlIEJldXRlIiAuLi4gKE5vdHN0cm9tLCAyNi4gTWFyIDIwMTcsIDEzOjAxOjEwKToKLi4uIHd1cmRlIGJlaSBlaW5pZ2VuIEdlZ2Vuc3RhZW5kZW4gZGVyIEJlZmVobCAic3ludGF4aGlsZmUiIGVyZ2Flbnp0LiBHZXJhZGUKU3BpZWxlciBtaXQgbmllZHJpZ2VuIEdpbGRlbnN0dWZlbiBoYWJlbiBqYSBldnRsLiBkZW4gImlkZW50aWZpemllcmUiLVNwZWxsCm5vY2ggbmljaHQuCgpIdGgsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZSBIYWxza3JhdXNlIC4uLiAoTm90c3Ryb20sIDI2LiBNYXIgMjAxNywgMTQ6NTM6NTApOgouLi4gc2NodWV0enQgaWhyZSBUcmFlZ2VyIGF1Y2ggd2VpdGVyaGluLCBkZW5uIEJ1Z2ZpeCB1bmQgaWNoIGhhYmVuIHVucyB1bQpkZW4gU3BlemlhbGZhbGwgZ2VrdWVtbWVydCwgZGFzcyBlaW4gTlBDIGVpbmVuIFRvZGVzc2NobGFnIGF1ZiBlaW5lbiBEYWVtb24KYXVzZnVlaHJ0LCBkaWVzZXIgYWJlciBhdXN3ZWljaHQgdW5kIGRhbWl0IGR1c3NsaWdlcndlaXNlIGRlbiBTY2hhZGVuIGF1ZgpkZW4gQ2hhb3RlbiB1bWxlbmt0LCB3YXMgZGllc2VuIHppZW1saWNoIHZlcm5pY2h0ZXQuCgpEaWVzZXIgU3BlemlhbGZhbGwgc29sbHRlIG51biBuaWNodCBtZWhyIGF1ZnRyZXRlbi4KCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbmUgSGFsc2tyYXVzZSAuLi4gKFNhcmF5LCAyNy4gTWFyIDIwMTcsIDEyOjQ5OjU4KToKfiMhIHJuPU5vdHN0cm9tIHJ0PTE0OTA1MzI4MzAgcmc9ZC53dWVzdGUKfiMhIHRpZD0xNDkwNTMyODMwCk9oLCBkYSBmcmV1ZSBpY2ggbWljaCBzZWhyIQpWaWVsZW4gRGFuayEKU2FyYXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hLUR1ZWxsYW5rdWVuZGlndW5nZW4gKE5vdHN0cm9tLCAgMy4gQXByIDIwMTcsIDE5OjU4OjI2KToKSWNoIGhhYmUgZGllIER1ZWxsLUFua3VlbmRpZ3VuZ2VuIGRlciBXdWVzdGVuYXJlbmEgcmVwYXJpZXJ0LiBFaWdlbnRsaWNoCnNlbHRzYW0sIGRhc3MgZGllIGplbWFscyBmdW5rdGlvbmllcnQgaGFiZW4uIERhbmtlIGFuIEJ1Z2ZpeCBmdWVyIHNlaW5lbgpzY2hhcmZlbiBCbGljay4KCkRhcyBHZXNjcm9sbGUga2FubiBtYW4gbmFjaCB3aWUgdm9yIGF1ZiB1ZWJsaWNoZSBXZWlzZSBpZ25vcmllcmVuLgoKSHRoLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp1Z2FuZ3NlcmxlaWNodGVydW5nZW4gKE5vdHN0cm9tLCAxMC4gQXByIDIwMTcsIDIzOjAyOjE0KToKRGVyIFp1Z2FuZyB6dW0gV3Vlc3RlbmdyYWIgc2NoZWludCBkb2NoIGV0d2FzIHNjaHdpZXJpZyB6dSBmaW5kZW4gZ2V3ZXNlbiB6dQpzZWluLiBEYXMgc29sbHRlIG51biB3ZXNlbnRsaWNoIGVpbmZhY2hlciBzZWluLgoKSHRoLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaXRlcmUgRXJsZWljaHRlcnVuZ2VuIGFtIFd1ZXN0ZW5ncmFiIChOb3RzdHJvbSwgMTEuIEFwciAyMDE3LCAxMToxODoxOSk6Ckh1aHUsCgpkZXIgUXVlc3RnZWJlciBiZWltIFd1ZXN0ZW5ncmFiIHNvbGx0ZSBudW4gZXR3YXMgbGVpY2h0ZXIgaGVyYXVzenVmb3JzY2hlbgpzZWluLgoKSHRoLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZW5hIHdpZWRlciBmcmVpIChaZXNzdHJhLCAyNi4gU2VwIDIwMTcsIDIxOjE3OjI1KToKSHVodSwKCmRpZSBBcmVuYSBpbiBkZXIgV3Vlc3RlIG11ZXNzdGUgd2llZGVyIGJlbnV0emJhciBzZWluLiBXZW5uIHNpZSB3aWVkZXIgaGFlbmd0LApiaXR0ZSBiZXNjaGVpZHNhZ2VuLgpTb3JyeSBmdWVyIGRpZSBVbXN0YWVuZGUsIGFiZXIgbWlyIGthbSBkYXMgYXVjaCBlcnN0IGt1ZXJ6bGljaCB6dSBPaHJlbiB1bmQKaGF0dGUgbmljaHQgc29mb3J0IFplaXQuCgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gU2Nod2VydCBiZWkgSGFra2lra3QgKE5vdHN0cm9tLCAxMC4gSmFuIDIwMTgsIDE4OjA2OjQyKToKLi4uIHd1cmRlIHVtIGVpbmVuIGtsZWluZW4gSGlud2VpcyBlcmdhZW56dCwgZGVyIHVlYmxpY2hlcndlaXNlIHVlYmVyIGVpbmUKR2lsZGVuZmFlaGlna2VpdCBhYnJ1ZmJhciBpc3QuIEJlc3RlaGVuZGUgU2Nod2VydGVyIHd1cmRlbiBhdXNnZXRhdXNjaHQuCgpTb2xsdGUgZXMgUHJvYmxlbWUgZGFtaXQgZ2ViZW4sIG1lbGRlbiBzaWNoIGJpdHRlIGRpZSBiZWlkZW4gbW9tZW50YW5lbgpCZXNpdHplciBiZWkgbWlyLgoKRGFua2UgYW4gTmlhbCwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcnVlaGphaHJzcHV0eiBJIChOb3RzdHJvbSwgMTAuIEphbiAyMDE4LCAyMToxMjo0MCk6Ci4uLiB1bmQgendhciBiZWkgRHVyaWFuIHVuZCBlaW4gd2VuaWcgYmVpIFRzdW5hbWkuIFdlciBkYSB3YXMgZmluZGV0LCB3YXMKbm9jaCBrYXB1dHRlciBhbHMgc29uc3QgaXN0LCBzYWd0IG1pciBiaXR0ZSBCZXNjaGVpZC4KCkRhbmtlLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlZmVrdCB1bmQgdW5mZXJ0aWcgLi4uIChOb3RzdHJvbSwgMTQuIEphbiAyMDE4LCAyMTo1MzoyNCk6Ci4uLiBhYmVyIGRlbm5vY2ggYW5nZWtsZW1tdCBpc3QgZWluIHVuc2ljaHRiYXJlciwgbmljaHQgYW5ncmVpZmJhcmVyIE5QQyBpbgpkZXIgaGVpc3NlbiBTYW5kd3Vlc3RlLiBEaWVzZW4ga2xlbW1lIGljaCBudW4gYWIsIGJpcyBhKSBkaWUgdGVjaG5pc2NoZW4KTWFlbmdlbCB1bmQgYikgZGVyIG9yZ2FuaXNhdG9yaXNjaGUgU3RhdHVzIChCZWFudHJhZ3VuZyBNUSwgQWJuYWhtZSBldGMuKQpnZWtsYWVydCBiencuIGVybGVkaWd0IGlzdC4gRGFzIGJlZGV1dGV0LCBkYXNzIGF1Y2ggZWluIEtyYXV0LCBkYXMgZGFkdXJjaAp1bnBmbHVlY2tiYXIgd2FyLCBiaXMgYXVmIFdlaXRlcmVzIG5pY2h0IG1laHIgYXVmdGF1Y2h0LgoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVmZWt0IHVuZCB1bmZlcnRpZyAuLi4gKE5vdHN0cm9tLCAyMy4gSmFuIDIwMTgsIDExOjE1OjUwKToKfiMhIHJuPU5vdHN0cm9tIHJ0PTE1MTU5NjMyMDQgcmc9ZC53dWVzdGUKfiMhIHRpZD0xNTE1OTYzMjA0CkRhcyBiZXRyZWZmZW5kZSBLcmF1dCBpc3Qgd2llZGVyIGFuZ2VrbGVtbXQgdW5kIGhhdCBlaW5lbiBuZXVlbiBCZXdhY2hlci4KRGFua2UgYW4gQnVnZml4LCBDaGFnYWxsIHVuZCBIdW1uaS4KClZpZWwgU3Bhc3MgYmVpbSBTY2huZXR6ZWxuLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVmZWt0IHVuZCB1bmZlcnRpZyAuLi4gKE5vdHN0cm9tLCAzMC4gSmFuIDIwMTgsIDEwOjM0OjA4KToKfiMhIHJuPU5vdHN0cm9tIHJ0PTE1MTY3MDI1NTAgcmc9ZC53dWVzdGUKfiMhIHRpZD0xNTE1OTYzMjA0Ckh1aHUgbm9jaG1hbCwKCmRpZSBSZXNpc3RlbnplbiBkZXMgQmV3YWNoZXJzIHdhcmVuIHVuYmVhYnNpY2h0aWd0IGV0d2FzIGhvY2guIEtvbW10IGRhdm9uLAp3ZW5uIG1hbiBuaWNodCBhdWZwYXNzdC4gTmljaHRjYXN0ZXIgc29sbHRlbiBlcyBudW4gd2VzZW50bGljaCBsZWljaHRlciBoYWJlbiwKZGVuIHdlcnRlbiBIZXJybiB6dSB2ZXJtb2ViZWxuLgoKVmllbCBTcGFzcywKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCcmVubmVuZGVyIFNjaHdlZmVsIC4uLiAoTm90c3Ryb20sIDEwLiBGZWIgMjAxOCwgMjA6MjU6MDkpOgouLi4gYnJpbmd0IEV1Y2ggendhciBub2NoIGZyb2VobGljaCB1bSwgd2VubiBJaHIgZGFzIGF1c3NpdHp0IG9kZXIgRXVyZQpSdWVzdHVuZyBuaWNodCBhdXN6aWVoZW4ga29lbm50LCBhYmVyIHZlcmZsdWNodGUgUnVlc3R1bmdlbiBzaW5kIG51biBzbwpzdGFyayBpbiBkZXIgZHVua2xlbiBTZWl0ZSBkZXIgTWFjaHQsIGRhc3Mgc2llIGRhYmVpIG5pY2h0IG1laHIgemVyc3RvZXJ0CndlcmRlbi4KCkRhbmtlIGFuIERKVG9tIHVuZCBBcmF0aG9ybi4KCkh0aCwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5lIGdvbGRlbmUgQXVnZW5rbGFwcGUgLi4uIChOb3RzdHJvbSwgMTUuIE1hciAyMDE4LCAxNDowOTozMik6Ci4uLiBzb2xsdGUgc2ljaCBqZXR6dCB3aWVkZXIgYW56aWVoZW4gbGFzc2VuLiBOaWNodCB3dW5kZXJuLCBkaWUgZXhpc3RpZXJlbmRlbgpFeGVtcGxhcmUgaGFiZSBpY2ggYXVzZ2V0YXVzY2h0LCBkaWUgbXVlc3N0IElociBhbHNvIGdnZi4gd2llZGVyIGFuemllaGVuLgoKSHRoLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlZ2VzY3JpcHRlIGJlaSBHdW5kdXIgLi4uIChOb3RzdHJvbSwgMTYuIEFwciAyMDE4LCAxOToxOTozNCk6Ci4uLiBrb2VubnRlbiBldnRsLiB2ZXJzdW1wZnQgc2VpbiwgZGVubiBpY2ggaGFiZSBkb3J0IGVpbmlnZSBUeXBvcyBlbnRzdW1wZnQuCgpIdGgsCk5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5oYWVuZ2xpY2hlIFN1YnN0YW56ZW4gLi4uIChOb3RzdHJvbSwgMjQuIEp1bCAyMDE4LCAyMjoyNTowMik6Ci4uLiBnZWJlbiBudW4gQXVza3VuZnQgZGFydWViZXIsIHdhcyBzaWNoIG1pdCBpaG5lbiBhbnN0ZWxsZW4gbGFlc3N0LgoKSHRoLApOb3RzdHJvbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClphY2NhdGEgKEFyYXRob3JuLCAxMC4gRGV6IDIwMTgsIDIwOjMwOjMwKToKTW9pbiwKCm9iZW4gZ2VuYW5udGVyIE5QQyBoYXQgamV0enQgZWluIHBhYXIgUHVlbmt0Y2hlbiBtZWhyIGFscyB2b3JoZXIuIEdlbmF1ZXIKZ2VzYWd0LCBoYXQgZXIgamV0enQgdWViZXJoYXVwdCBkaWUgZXJzdGVuLiAKCkhvZmZlLCBkYXMgZmluZGV0IGV1cmUgWnVzdGltbXVuZy4gOi0pCgpHcnVzcywgQXJhdGhvcm4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHaWVyaWdlIFRydWhlIChOb3RzdHJvbSwgMzEuIEF1ZyAyMDE5LCAxNDo0Nzo1MSk6Ckh1aHUsCgplaW5lIGdld2lzc2UgVHJ1aGUgc29sbHRlIG51biBuaWNodCBtZWhyIGFscyBlaW5lIEhhbmQgYWJiZWlzc2VuLCB3ZW5uCmdld2lzc2UgR2lsZGVuYW5nZWhvZXJpZ2UgZG9ydCBtaXQgZ2V3aXNzZW4gYW5nZXdvcmZlbmVuIFphdWJlcm4gVW5mdWcKdHJlaWJlbi4KCkh0aCwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbiBlaW5lbSBXcmFja2hhdWZlbiAuLi4gKE5vdHN0cm9tLCAxMS4gU2VwIDIwMTksIDE0OjM2OjQ1KToKLi4uIGxhZXNzdCBzaWNoIGpldHp0IGxlaWNodGVyIGV0d2FzIHJhdXNmb3JzY2hlbi4KCkh0aCwKTm90c3Ryb20uCgpQLlMuOiBEYW5rIGFuIE9saXZpYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClplaXQgZnVlciBCZWxvaG51bmdlbiAoTm90c3Ryb20sIDEyLiBTZXAgMjAxOSwgMTE6NDM6NTUpOgpIdWh1LAoKaWNoIG1vZWNodGUgZGFyYW4gZXJpbm5lcm4sIGRhc3MgbW9yZ2VuIHdpZWRlciBGcmVpdGFnLCBkZXIgMTMuIGlzdC4gOikKCkh0aCwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbGVwaSAoTm90c3Ryb20sIDEyLiBTZXAgMjAxOSwgMTI6MDQ6NTUpOgouLi4gd2lyZCBudW4gdm9uIGVpbmVtIGdld2lzc2VuIERhZW1vbiBhdWNoIGFremVwdGllcnQsIGlzdCBqYSBvcmRlbnRsaWNoZXMKQmllci4KCkh0aCwKTm90c3Ryb20uCgpQLlMuOiBEYW5rIGFuIE9saXZpYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlbG9obnVuZ2VuIChOb3RzdHJvbSwgMTEuIERleiAyMDE5LCAyMDo1NDo1OCk6Ckh1aHUsCgppY2ggbW9lY2h0ZSBkYXJhdWYgYXVmbWVya3NhbSBtYWNoZW4sIGRhc3MgdWViZXJtb3JnZW4gd2llZGVyIGVpbiBGcmVpdGFnLApkZXIgMTMuIGlzdC4KCkh0aCwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNZWhyIEdldHJhZW5rZSBmdWVyIGtsZWluZSBIYWVrZWxkYWVtb25lbiAoTm90c3Ryb20sIDEzLiBEZXogMjAxOSwgMjA6MDY6NTQpOgpIdWh1LAoKYXVzc2VyIEJpZXIgYWt6ZXB0aWVydCBEcmliYmVsZHJ1ZmYgamV0enQgYXVjaCBEaWViZWxzLgoKRGFua2UgYW4gVGl6b25hLgoKRWluIHNjaG9lbmVzIEFkdmVudHN3b2NoZW5lbmRlIHd1ZW5zY2h0Ck5vdHN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3ludGF4aGlsZmUgKE5vdHN0cm9tLCAgOS4gTWFyIDIwMjAsIDEzOjM1OjIzKToKLi4uIGdpYnQgZXMgbnVuIGF1Y2ggYmVpIGV0d2FzLCBkYXMgbWFuIGF1ZiBlaW5lbSBzdGF1YmlnZW4gUGZhZCBmaW5kZW4ga2Fubi4KCkh0aCwKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHbHVlY2tzdGFnIChOb3RzdHJvbSwgMTMuIE1hciAyMDIwLCAxNTozMjoyMik6Ckh1aHUsCgp3aWUgZ2VyYWRlIGVpbiBmcmV1bmRsaWNoZXIgQ2hhb3QgZXJpbm5lcnQgaGF0LCBpc3QgaGV1dGUgRnJlaXRhZywgZGVyIDEzLgpGcm9laGxpY2hlcyBBYmhvbGVuIQoKTm90c3Ryb20uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXR1bSAoTm90c3Ryb20sIDEyLiBOb3YgMjAyMCwgMjI6NDM6MTcpOgpIYWxsbyB6dXNhbW1lbiwKCmljaCBtb2VjaHRlIGRhcmF1ZiBoaW53ZWlzZW4sIGRhc3MgaGV1dGUgRG9ubmVyc3RhZywgZGVyIDEyLiBpc3QuIE9kZXIKYW5kZXJzIGF1c2dlZHJ1ZWNrdCwgZGFzcyBnZXN0ZXJuIE1pdHR3b2NoIGRlciAxMS4gd2FyLgoKVmllbCBTcGFzcyBiZWltIEFia2Fzc2llcmVuLApOb3RzdHJvbS4KClAuUy46IERhbmtlIGFuIE5vbmRydW0gZnVlcnMgRXJpbm5lcm4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBZmZlIGF1cyBEdXJpYW5zIFpvbyAoQXJhdGhvcm4sICA0LiBNYXIgMjAyMSwgMjM6NTA6MDcpOgpIYWxsbyB6dXNhbW1lbiwKCmljaCBoYWJlIGdlcmFkZSBEdXJpYW5zIEFmZmVuIGJlaWdlYnJhY2h0LCBiZXN0aW1tdGUgRGluZ2UgbmljaHQgbWVocgphdWZ6dWhlYmVuIG9kZXIgYW56dW5laG1lbiwgZGllIG5pY2h0IGZ1ZXIgaWhuIGdlZWlnbmV0IHNpbmQuIEhpbnRlcmdydW5kIGlzdAp1bnRlciBhbmRlcmVtLCBkYXNzIGVyIGtlaW5lIERpbmdlIGJlaSBzaWNoIGhhYmVuIHNvbGwsIGRpZSBlciBuaWNodCBhYmxlZ2VuCmthbm4sIHdlaWwgZGllIGFuIGlobSBrbGViZW4gd2llIFBlY2ggdW5kIGVyIGRpZXNlIGRhbm4gbm90Z2VkcnVuZ2VuIG1pdAp3ZWdzY2hsZXBwZW4gbXVzcywgd2VubiBtYW4gaWhuIHdlZ3NjaGlja3QuCgpEYW5rZSBhbiBDYXJsbyBmdWVycyBGaW5kZW4gdW5kIEJlc2NoZWlkc2FnZW4uIDotKQoKR3J1c3MsIEFyYXRob3JuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxsZSBKYWhyZSB3aWVkZXIgLi4uIChOb25kcnVtLCAxMi4gQXVnIDIwMjEsIDE5OjAyOjIzKToKLi4uIHVuZCBtYW5jaG1hbCBzb2dhciBtZWhyIGFscyBudXIgZWlubWFsIGltIEphaHIgZ2lidCBlcyBlaW5lbiBGcmVpdGFnLCBkZW4KMTMuIGVpbmVzIE1vbmF0cy4gRGllc2VzIEphaHIgaXN0IG1vcmdlbiBkaWVzZXIgVGFnIHVuZCB0cml0dCBlcnN0IHdpZWRlciBpbQpNYWkgMjAyMiBhdWYuIFdhcnVtIGljaCBkYXMgZXJ3YWVobmU/IE51biwgVHJhZGl0aW9uZW4gc29sbHRlIG1hbiBmb3J0c2V0emVuLApvYiBtYW4gc2llIGRlbSBHdXRlbiBvZGVyIGRlbSBCb2VzZW4gd2lkbWV0LCBlcyB3aXJkIGV1Y2ggZW50bG9obnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXR1bSAoQnVnZml4LCAxMi4gTWFpIDIwMjIsIDE2OjA2OjQ0KToKTW9pbiB6dXNhbW1lbiwKCmluIEVyaW5uZXJ1bmcgYW4gTm90c3Ryb20sIG1vZWNodGUgaWNoIGRhcmF1ZiBoaW53ZWlzZW4sIGRhc3MgaGV1dGUgRG9ubmVyc3RhZwpkZXIgendvZWxmdGUgaXN0LiBJaHIgd2lzc3QgamEgYWxsZSwgd2FzIGRhcyBiZWRldXRldC4KCkJ1Z2ZpeAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhdHVtIChWYW5pciwgMTIuIE1haSAyMDIyLCAxNjozNDozNSk6Cn4jISBybj1CdWdmaXggcnQ9MTY1MjM2NDQwNCByZz1kLnd1ZXN0ZQp+IyEgdGlkPTE2NTIzNjQ0MDQKSnVodSEgTW9yZ2VuIGlzdCB1bnNlciBHbHVlY2tzdGFnIQpWLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEYXR1bSAoWmFwaG9iLCAxNC4gTWFpIDIwMjIsIDEwOjQyOjM5KToKfiMhIHJuPVZhbmlyIHJ0PTE2NTIzNjYwNzUgcmc9ZC53dWVzdGUKfiMhIHRpZD0xNjUyMzY0NDA0CkhldXRlIGlzdCB1ZWJyaWdlbnMgU2Ftc3RhZywgZGVyIHZpZXJ6ZWhudGUgVGFnIGRlcyBNb25hdHMuCldhbm4gZGllc2UgS29uc3RlbGxhdGlvbiB3b2hsIGRhcyBuYWVjaHN0ZSBNYWwgYXVmdHJpdHQ/CgpaYXAqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEYXR1bSAoVmFuaXIsIDE0LiBNYWkgMjAyMiwgMTA6NTc6MjEpOgp+IyEgcm49WmFwaG9iIHJ0PTE2NTI1MTc3NTkgcmc9ZC53dWVzdGUKfiMhIHRpZD0xNjUyMzY0NDA0CkRpZSBuYWVjaHN0ZSBLb25zdGVsbGF0aW9uIGRpZXNlciBBcnQgdHJpdHQgZXJzdCB3aWVkZXIgaW0gSmFudWFyIDIwMjMgYXVmLgpEYW5uIG5vY2ggZWlubWFsIGltIFNlcHRlbWJlciAyMDI0LiAKClYuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYWJsYXN1bXBmIChBcmF0aG9ybiwgMTAuIEp1bCAyMDIzLCAyMToxNDoxMSk6CkhhbGxvIHp1c2FtbWVuLAoKaWNoIGhhYmUgZ2VyYWRlIGVpbmUga2xlaW5lIEFlbmRlcnVuZyBhbSBTdW1wZiBha3RpdmllcnQsIGRpZSBkYWZ1ZXIgc29yZ3QsCmRhc3MgYWxsenUga2xlaW5lIEFuZmFlbmdlciBuaWNodCBtZWhyIHJlaW5nZXJhdGVuIGtvZW5uZW4uCgpBbWFuZGEgZGFyZiB1ZWJyaWdlbnMgYXVjaCBuaWNodCBtZWhyIGRvcnRoaW4uIERhcyBoYXQgR2lhbm5pIHZlcmJvdGVuLCB3ZWlsCnBvdGVudGllbGxlIEt1bmRlbiBzaWUgZGFubiBuaWNodCBhdWZzdWNoZW4ga29lbm5lbiwgdW5kIGRhcyBpc3Qgc2NobGVjaHQKZnVlcnMgR2VzY2hhZWZ0LgoKQXJhdGhvcm4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgWm9vIChBcmF0aG9ybiwgIDcuIEF1ZyAyMDIzLCAyMjo0NTo1Mik6CkhhbGxvIHp1c2FtbWVuLAoKZGVyIFpvbyBoYXQgZ2VyYWRlIGVpbiB1bWZhbmdyZWljaGVzIFVwZGF0ZSBlcmZhaHJlbi4gV2VubiBpaHIgZXVyZSBIYXVzdGllcmUKaGVyYW5nZXJ1ZmVuIGhhdHRldCwgc2luZCBkaWVzZSBiZWkgZGVtIFVwZGF0ZSB2ZXJzY2h3dW5kZW4sIGlociBrb2VubnQgc2llCmFiZXIgb2huZSB3ZWl0ZXJlcyBuZXUgcnVmZW4uIEV1cmUgWmVydGlmaWthdGUgdW5kIGdnZi4gUGFwYWdlaWVua2FlZmlnZSBoYWJlCmljaCBhdXNnZXRhdXNjaHQsIGVzIHNvbGx0ZSBzaWNoIGZ1ZXIgZXVjaCBuaWNodHMgV2VzZW50bGljaGVzIGFuIGRlcgpCZW51dHp1bmcgYWVuZGVybi4KCkF1c2xvZXNlciBmdWVyIGRpZSBVZWJlcmFyYmVpdHVuZyB3YXIgZWluIEZlaGxlciBiZWltIEthdWZlbiB2b24gVGllcmVuLCB3ZW5uCm1hbiB6dSB3ZW5pZyBHZWxkIGJlaSBzaWNoIGhhdHRlLiBEYWJlaSB3dXJkZSBkYXMgVGllciBlcndhcnR1bmdzZ2VtYWVzcyBuaWNodAp2ZXJrYXVmdCwgYWJlciBkZXIgZ2V3dWVuc2NodGUgTmFtZSB3dXJkZSB0cm90emRlbSBnZXNwZXJydC4gRGllc2VyIEZlaGxlciBpc3QKYmVob2Jlbi4KCkltIFp1Z2UgZGVyIEZlaGxlcnN1Y2hlIGZpZWxlbiB3ZWl0ZXJlIHByb2JsZW1hdGlzY2hlIFN0ZWxsZW4gdW5kIGFsbGdlbWVpbmUKVW56dWxhZW5nbGljaGtlaXRlbiBpbiBkZXIgVGVjaG5payBhdWYsIGRpZSBiZXNlaXRpZ3Qgd3VyZGVuLiBFaW5lciBkZXIgUHVua3RlCm1hY2h0IHNpY2ggZnVlciBldWNoIGdnZi4gYXVjaCBiZW1lcmtiYXI6IGRpZSBUaWVyZSBzb2xsdGVuIGpldHp0IHdpZWRlcgpoYWV1ZmlnZXIgTGViZW5zemVpY2hlbiB2b24gc2ljaCBnZWJlbiBpbiBGb3JtIHZvbiBlbnRzcHJlY2hlbmRlbgpSYXVtbWVsZHVuZ2VuLgoKV2llIGltbWVyIGdpbHQ6IFNvbGx0ZSBpcmdlbmR3YXMgbmljaHQgd2llIGVyd2FydGV0IGZ1bmt0aW9uaWVyZW4gb2RlciBrYXB1dHQKc2Vpbiwgc2FndCBCZXNjaGVpZC4gKEF1c25haG1lOiBGaVJaR3MsIGRpZSBzZWhlIGljaCBhdWNoIG9obmUgZ2Vzb25kZXJ0ZQpNaXR0ZWlsdW5nLikKCkdydXNzLCBBcmF0aG9ybi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCg==