RnJvbSBub3JlcGx5QHNvdXJjZWZvcmdlLm5ldCAgV2VkIEF1ZyAxNCAxNzozNjowOCAyMDAyClJldHVybi1QYXRoOiA8bm9yZXBseUBzb3VyY2Vmb3JnZS5uZXQ+CkRlbGl2ZXJlZC1UbzogYWFhYUBsb2NhbGhvc3QueHh4eHh4eHh4eHh4LmNvbQpSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHBob2Jvcy5sYWJzLnh4eHh4eHh4eHh4eC5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgRUVBQzk0M0MzMgoJZm9yIDxhYWFhQGxvY2FsaG9zdD47IFdlZCwgMTQgQXVnIDIwMDIgMTI6MzY6MDYgLTA0MDAgKEVEVCkKUmVjZWl2ZWQ6IGZyb20gcGhvYm9zIFsxMjcuMC4wLjFdCglieSBsb2NhbGhvc3Qgd2l0aCBJTUFQIChmZXRjaG1haWwtNS45LjApCglmb3IgYWFhYUBsb2NhbGhvc3QgKHNpbmdsZS1kcm9wKTsgV2VkLCAxNCBBdWcgMjAwMiAxNzozNjowNyArMDEwMCAoSVNUKQpSZWNlaXZlZDogZnJvbSB1c3ctc2YtbGlzdDIuc291cmNlZm9yZ2UubmV0ICh1c3ctc2YtZncyLnNvdXJjZWZvcmdlLm5ldAogICAgWzIxNi4xMzYuMTcxLjI1Ml0pIGJ5IGRvZ21hLnNsYXNobnVsbC5vcmcgKDguMTEuNi84LjExLjYpIHdpdGggRVNNVFAgaWQKICAgIGc3RUdXMzQyNDY4NSBmb3IgPHh4eHh4QHl5eXl5eS56eno+OyBXZWQsIDE0IEF1ZyAyMDAyIDE3OjMyOjA0ICswMTAwClJlY2VpdmVkOiBmcm9tIHVzdy1zZi1kYjItYi5zb3VyY2Vmb3JnZS5uZXQgKFsxMC4zLjEuNF0KICAgIGhlbG89c291cmNlZm9yZ2UubmV0IGlkZW50PXRwZXJkdWUpIGJ5IHVzdy1zZi1saXN0Mi5zb3VyY2Vmb3JnZS5uZXQgd2l0aAogICAgc210cCAoRXhpbSAzLjMxLVZBLW1tMiAjMSAoRGViaWFuKSkgaWQgMTdmMTQxLTAwMDQzYS0wMCBmb3IKICAgIDx4eHh4eEB5eXl5eXkuenp6PjsgV2VkLCAxNCBBdWcgMjAwMiAwOTozMjowNSAtMDcwMApGcm9tOiBNYWlsZXIgPG5vcmVwbHlAc291cmNlZm9yZ2UubmV0PgpUbzogIiIgPHh4eHh4QHl5eXl5eS56eno+ClN1YmplY3Q6IFNPVVJDRUZPUkdFLk5FVCBVUERBVEU6IEF1Z3VzdCAxNCwgMjAwMgpNZXNzYWdlLUlkOiA8RTE3ZjE0MS0wMDA0M2EtMDBAdXN3LXNmLWxpc3QyLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogV2VkLCAxNCBBdWcgMjAwMiAwOTozMjowNSAtMDcwMAoKCihZb3UgYXJlIHJlY2VpdmluZyB0aGlzIGVtYWlsIGJlY2F1c2UgeW91IHN1YnNjcmliZWQgdG8gaXQgKGhvbmVzdCkuCkZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdW5zdWJzY3JpYmUgcGxlYXNlIHJlYWQgdGhlIGJvdHRvbSBvZiB0aGlzCmVtYWlsKS4KCjAuIElOVFJPLiAgW0lCTSBEQjJdCjEuIElOQ1JFQVNFRCBET1dOTE9BRCBDQVBBQ0lUWS4KMi4gQVVESU8gT0YgS0VSTkVMIFNVTU1JVCBBVkFJTEFCTEUuCjMuIEJFIEEgU0YuTkVUIEZPVU5EUlkgR1VJREUuCjQuIFdPUksgRk9SIFNPVVJDRUZPUkdFLk5FVAo1LiBTSVRFIFNUQVRJU1RJQ1MKCgowLiBJTlRSTwoKSGVsbG8gU291cmNlRm9yZ2UubmV0IFVzZXJzLAoKVGhpcyB3ZWVrIHdlJ3ZlIG1hZGUgYSBiaWcgYW5ub3VuY2VtZW50LiAgQXMgeW91IGxpa2VseSBrbm93LCBhbnkKbGFyZ2UgZHluYW1pYyB3ZWJzaXRlIGlzIHBvd2VyZWQgYnkgYSBkYXRhYmFzZSB0aGF0IGZ1bm5lbHMgZGF0YSB0bwp0aGUgd2ViIHNlcnZlcnMgc2VydmluZyBkYXRhIHdoaWNoIHVsdGltYXRlbHkgZ2V0cyBzZW50IHRvIHlvdS4KVGhlc2UgZGF0YWJhc2VzIG1hbmFnZSBldmVyeXRoaW5nIGZyb20gdXNlciBhdXRoZW50aWNhdGlvbiwgc2Vzc2lvbgptYW5hZ2VtZW50LCBzaXRlIHNlYXJjaGluZywgZXRjLiAgU291cmNlRm9yZ2UubmV0IGlzIGEgZGF0YWJhc2UtCmRlcGVuZGVudCB3ZWJzaXRlLgoKVG9kYXkgd2UgaGF2ZSBhbm5vdW5jZWQgdGhhdCB3ZSBhcmUgbW92aW5nIFNvdXJjZUZvcmdlLm5ldCB0byBEQjIsCmEgcG93ZXJmdWwgcmVsYXRpb25hbCBkYXRhYmFzZSBieSBJQk0uICBXZSBhcmUgZG9pbmcgdGhpcyBiZWNhdXNlCnRoZSBzaXRlIGNvbnRpbnVlcyB0byBncm93IGF0IGEgcmFwaWQgcmF0ZSwgd2l0aCA3MDAgbmV3IHVzZXJzIGFuZAo3MCBuZXcgcHJvamVjdHMgYSBkYXksIGFuZCB3ZSBuZWVkIGEgZGF0YWJhc2UgdGhhdCBjYW4gaGFuZGxlIHRoaXMKZ3Jvd3RoLiAgV2UgZmVlbCB0aGF0IERCMiBjYW4gZG8gdGhpcyBmb3IgdXMsIGFuZCBJQk0gaXMgZ2l2aW5nIHVzCnRoZSByZXNvdXJjZXMgdG8gbWFrZSB0aGlzIHRyYW5zaXRpb24gc3VjY2Vzc2Z1bC4gIFlvdSBjYW4gcmVhZCB0aGUKcHJlc3MgcmVsZWFzZSBoZXJlOgoKaHR0cDovL3d3dy52YXNvZnR3YXJlLmNvbS9uZXdzL3ByZXNzLnBocC8yMDAyLzEwNzAuaHRtbAoKSG93IHdpbGwgdGhpcyBlZmZlY3QgeW91PyAgSW4gdGhlIGZpcnN0IHBoYXNlLCB5b3Ugd29uJ3Qgc2VlIG11Y2gKZGlmZmVyZW5jZSBvdGhlciB0aGVuIHRoZSBzaXRlIHdpbGwgY29udGludWUgdG8gZ3JvdyBhbmQgdGhlClNvdXJjZUZvcmdlLm5ldCB0ZWFtIHdpbGwgYmUgYWJsZSB0byBoYW5kbGUgdGhlIGdyb3d0aC4gIEluIGxhdGVyCnBoYXNlcyB5b3Ugd2lsbCBzZWUgbmV3IGZlYXR1cmVzIG9uIHRoZSBzaXRlIHRoYXQgdGFrZSBhZHZhbnRhZ2Ugb2YKdGhlIGRhdGFiYXNlcyBhZHZhbmNlZCBjYXBhYmlsaXRpZXMuCgpUb2RheSBvdXIgbWFpbCBhcmNoaXZlcyBoYXZlIGJlZW4gY29udmVydGVkIG92ZXIuICBUaGUgcmVzdCBvZiB0aGUKc2l0ZSB3aWxsIG1ha2UgdGhlIG1pZ3JhdGlvbiB0byBEQjIgaW4gdGhlIGNvbWluZyBtb250aHMuCgpJZiB5b3UgaGF2ZSBxdWVzdGlvbnMgYWJvdXQgdGhpcyBvciBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBzaXRlLApwbGVhc2UgZmVlbCBmcmVlIHRvIGVtYWlsIG1lLCBwYXRAc291cmNlZm9yZ2UubmV0LiAgSSBhbHdheXMKYXBwcmVjaWF0ZSB0aGUgZmVlZGJhY2suCgpUaGFuayB5b3UgZm9yIHlvdXIgY29udGludWVkIHN1cHBvcnQgb2YgU291cmNlRm9yZ2UubmV0IGFuZCB0aGUKT3BlbiBTb3VyY2UgQ29tbXVuaXR5LgoKUGF0LQoKUGF0cmljayBNY0dvdmVybgpEaXJlY3RvciwgU291cmNlRm9yZ2UubmV0CgoKCjEuIElOQ1JFQVNFRCBET1dOTE9BRCBDQVBBQ0lUWQoKU291cmNlRm9yZ2UubmV0IGNvbnRpbnVlcyB0byBncm93LCBhbmQgaXQncyBhcHBldGl0ZSBmb3IgYmFuZHdpZHRoCmlzIG5ldmVyLWVuZGluZy4gIEV2ZXJ5IGRheSBTRi5ORVQgc2VydmVzIG92ZXIgMzAwLDAwMCBmaWxlcyB0bwplbnN1cmUgdGhhdCBkZXZlbG9wZXJzIGFuZCBlbmQtdXNlcnMgd2l0aGluIHRoZSBPcGVuIFNvdXJjZQpjb21tdW5pdHkgY2FuIGFsd2F5cyBvYnRhaW4gdGhlIHNvZnR3YXJlIHJlbGVhc2VkIGJ5IGhvc3RlZApwcm9qZWN0cywgU291cmNlRm9yZ2UubmV0IG1haW50YWlucyBhIG5ldHdvcmsgb2YgaGlnaC1jYXBhY2l0eQpkb3dubG9hZCBzZXJ2ZXJzLiAgVGhlc2Ugc2VydmVycyBhcmUgbG9jYXRlZCB0aHJvdWdob3V0IHRoZSB3b3JsZCwKYXMgdG8gcHJvdmlkZSBiZXR0ZXIgZG93bmxvYWQgdGltZXMgcmVnYXJkbGVzcyBvZiB3aGljaCBuZXR3b3JrCnByb3ZpZGVyIHlvdSBhcmUgdXNpbmcsIGFuZCByZWdhcmRsZXNzIG9mIHlvdXIgZ2VvZ3JhcGhpYyBsb2NhdGlvbi4KClRocmVlIG5ldyBkb3dubG9hZCBzZXJ2ZXJzIGhhdmUgcmVjZW50bHkgYmVlbiBhZGRlZCB0byBvdXIgbmV0d29yaywKZnVydGhlciBzdHJlbmd0aGVuaW5nIG91ciBmaWxlIHNlcnZpbmcgY2FwYWJpbGl0aWVzLiAgVGhlc2UgbGF0ZXN0CmFkZGl0aW9ucyBpbmNsdWRlIHNlcnZlcnMgaG9zdGVkIGJ5OgoKVGltZSBXYXJuZXIgVGVsZWNvbSAoV2lzY29uc2luLFVTQSk7Cmh0dHA6Ly93d3cudHd0ZWxlY29tLmNvbS8KClVuaXZlcnNpdHkgb2YgTWlubmVzb3RhIChNaW5uZXNvdGEsIFVTQSkKaHR0cDovL3d3dy51bW4uZWR1LwoKQ0VTTkVUIChDemVjaCBSZXB1YmxpYykKaHR0cDovL3d3dy5jZXNuZXQuY3ovCgpXZSB0aGFuayB0aGVzZSBzcG9uc29ycyBmb3IgdGhlaXIgY29tbWl0bWVudCB0byBTb3VyY2VGb3JnZS5uZXQgYW5kCnRoZSBuZWVkcyBvZiB0aGUgT3BlbiBTb3VyY2UgY29tbXVuaXR5LgoKT24gYSByZWxhdGVkIG5vdGUsIHdlIGFyZSBsb29raW5nIGZvciBhIG1pcnJvciBpbiBKYXBhbi4gIElmIHlvdSBhcmUKYW4gSVNQIG9yIFVuaXZlcnNpdHkgaW4gSmFwYW4gYW5kIGFyZSB3aWxsaW5nIHRvIHNwYXJlIDIwTWJwcyBmb3IgYQpTb3VyY2VGb3JnZS5uZXQgbWlycm9yICh3ZSdsbCBzdXBwbHkgdGhlIGhhcmR3YXJlKSwgcGxlYXNlIGxldCB1cwprbm93IGF0IGJhbmR3aWR0aEBzb3VyY2Vmb3JnZS5uZXQKCgoKMi4gQVVESU8gT0YgS0VSTkVMIFNVTU1JVCBBVkFJTEFCTEUKClNvdXJjZUZvcmdlLm5ldCBub3cgaGFzIHRoZSBhdWRpbyBmcm9tIHRoZSBlbnRpcmUgMjAwMiBPU0ROL1VTRU5JWApLZXJuZWwgU3VtbWl0LCBoZWxkIGluIEp1bmUuICBMaXN0ZW4gdG8gdGhlIExpbnV4IGtlcm5lbCBtYXN0ZXIKZGlzY3VzcyBzdWNoIGhvdCB0b3BpY3MgYXMga2VybmVsIG1vZHVsZXMsIHZpcnR1YWwgbWVtb3J5LApibG9jayBJL08sIGRhdGFiYXNlIHNjYWxpbmcsIHNlY3VyaXR5IG1vZHVsZXMsIGFuZCBhc3luYyBJL08uCllvdSBtYXkgZmluZCB0aGlzIGF1ZGlvIHJlcG9zaXRvcnkgYXQ6CgpodHRwOi8vbGludXhrZXJuZWwuZm91bmRyaWVzLnNvdXJjZWZvcmdlLm5ldC9hcnRpY2xlLnBsP3NpZD0wMi8wNi8yNi8wMTE2MjI1CgoKCjMuIENPTlRSSUJVVEUgVE8gU09VUkNFRk9SR0UuTkVUISBCRSBBIEZPVU5EUlkgR1VJREUhCgpXYW50IHRvIGNvbnRyaWJ1dGUgdG8gU291cmNlRm9yZ2UubmV0LCBidXQgeW91IGRvbid0IGtub3cgaG93IHRvCmNvZGU/IEJlIGEgZm91bmRyeSBndWlkZSEgIEZvdW5kcnkgZ3VpZGVzIGdldCB0byBoeXBlIHRoZSBjb29sCnByb2plY3RzIHRoYXQgdGhleSB0aGluayBhcmUgd29ydGggZG93bmxvYWRpbmcgYW5kIHRlc3RpbmcuCkEgZ3VpZGUgZmluZHMgYWxsIHRoZSBzdHVmZiBvbiB0aGUgd2ViIGFib3V0IHRoZWlyIHN1YmplY3Qgb2YKY2hvaWNlLCBhbmQgZ2l2ZXMgaXQgcHJvbWluZW50IHBsYWNlbWVudC4gIEhvdyBkbyB5b3UgYmVjb21lIGEKZm91bmRyeSBndWlkZT8gR28gdG8gaHR0cDovL2ZvdW5kcmllcy5zb3VyY2Vmb3JnZS5uZXQvOyBmaW5kIGEKdG9waWMgdGhhdCBpbnRlcmVzdHMgeW91OyBhbmQgc2VuZCBlbWFpbCB0bwpmb3VuZHJpZXNAc291cmNlZm9yZ2UubmV0IHN0YXRpbmcgeW91ciBkZXNpcmVkIHRvcGljIGFuZCB3aHkgeW91CmFyZSBxdWFsaWZpZWQgdG8gYmUgYSBmb3VuZHJ5IGd1aWRlLgoKCgo0LiBXT1JLIEZPUiBTT1VSQ0VGT1JHRS5ORVQKCldlIGhhdmUgYSBuZXcgcG9zaXRpb24gZm9yIGEgc2VuaW9yIHdlYiBkZXZlbG9wZXIgYXZhaWxhYmxlIGF0ClNvdXJjZUZvcmdlLm5ldC4gIFdlIGFyZSBsb29raW5nIGZvciBzb21lb25lIHRvIGhlbHAgdXMgbWFpbnRhaW4sCnVwZ3JhZGUsIGFuZCBhZGQgbmV3IGZlYXR1cmVzIHRvIFNvdXJjZUZvcmdlLm5ldC4gIElkZWFsIHBlcnNvbiBoYXMKNSsgeWVhcnMgb2YgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZSBvbiBoaWdoIGVuZCwgaGlnaCB2b2x1bWUKd2Vic2l0ZXMgKDMrIG1pbGxpb24gcGFnZSB2aWV3cyBhIGRheSkuICBIYXMgYSB2YXN0IGxldmVsIG9mCmtub3dsZWRnZSBvZiBJbnRlcm5ldCB0ZWNobm9sb2dpZXM6ICBQSFAsIFBvc3RncmVTUUwsIE15U1FMLCBEQjIsCkxpbnV4LCBQRVJMLCBBcGFjaGUsIExEQVAsIE1haWxtYW4uICBBIGZsYXJlIGZvciBkZXNpZ24gLyBVSSBpcyBhCmJvbnVzLiAgU291cmNlRm9yZ2UgaXMgYSB1bmlxdWUgc2l0ZSB3aXRoIHVuaXF1ZSBjaGFsbGVuZ2VzLiAgV2UgYXJlCmxvb2tpbmcgZm9yIHNvbWVvbmUgYXQgdGhlIHRvcCBvZiB0aGVpciBnYW1lLgoKTG9jYXRpb24gb2YgSm9iIGlzIGluIEZyZW1vbnQsIENhbGlmb3JuaWEuICBQbGVhc2Ugc2VuZCByZXN1bWUgYW5kClVSTCdzIG9mIHNpdGVzIHlvdSBoYXZlIHdvcmtlZCBvbiB0byBqb2JzQHNvdXJjZWZvcmdlLm5ldC4gIFRleHQKcmVzdW1lcyBvbmx5LiAgKE5vIE1TIFdPUkQgZmlsZXMhKQoKCgo1LiBTSVRFIFNUQVRJU1RJQ1MKClN0YXRzOiAoTW9uZGF5IDEydGgsIDIwMDApCkhvc3RlZCBQcm9qZWN0czogNDUsMTk0ClJlZ2lzdGVyZWQgVXNlcnM6IDQ2NSw1MzAKUGFnZSBWaWV3czogMywzNDQsNzA4IGluIGEgc2luZ2xlIGRheSAoTW9uZGF5KQpGaWxlcyB0cmFuc2ZlcmVkIGluIGEgc2luZ2xlIGRheTogMzQwLDgzOCAoTW9uZGF5KQpFbWFpbHMgc2VudCBpbiBhIHNpbmdsZSBkYXkgZnJvbSBNYWlsaW5nIGxpc3RzOiA4NTEsMTQzIChNb25kYXkpCgoKVG9wIFRlbiBQcm9qZWN0cwoKMSBwaHBNeUFkbWluCmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvcGhwbXlhZG1pbi8KcGhwTXlBZG1pbiBpcyBhIHRvb2wgd3JpdHRlbiBpbiBQSFAgaW50ZW5kZWQgdG8gaGFuZGxlIHRoZQphZG1pbmlzdHJhdGlvbiBvZiBNeVNRTCBvdmVyIHRoZSBXV1cuICBDdXJyZW50bHkgaXQgY2FuIGNyZWF0ZSBhbmQKZHJvcCBkYXRhYmFzZXMsIGNyZWF0ZS9kcm9wL2FsdGVyIHRhYmxlcywgZGVsZXRlL2VkaXQvYWRkIGZpZWxkcywKZXhlY3V0ZSBhbnkgU1FMIHN0YXRlbWVudCwgbWFuYWdlIGtleXMgb24gZmllbGRzLgoKMiBDb21waWVyZSBFUlAgKyBDUk0gQnVzaW5lc3MgU29sdXRpb24KaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jb21waWVyZS8KU21hcnQgRVJQK0NSTSBzb2x1dGlvbiBmb3Igc21hbGwtbWVkaXVtIGVudGVycHJpc2VzIChTTUUpIGluIHRoZQpnbG9iYWwgbWFya2V0cGxhY2UgY292ZXJpbmcgYWxsIGFyZWFzIGZyb20gY3VzdG9tZXIgbWFuYWdlbWVudCwKc3VwcGx5IGNoYWluIGFuZCBhY2NvdW50aW5nLiAgRm9yICQyLTIwME0gcmV2ZW51ZSBjb21wYW5pZXMgbG9va2luZwpmb3IgImJyaWNrIGFuZCBjbGljayIgZmlyc3QgdGllciBmdW5jdGlvbmFsaXR5LgoKMyBTcXVpcnJlbE1haWwKaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9zcXVpcnJlbG1haWwvClNxdWlycmVsTWFpbCBpcyBhIFBIUDQtYmFzZWQgV2ViIGVtYWlsIGNsaWVudC4gIEl0IGluY2x1ZGVzIGJ1aWx0LWluCnB1cmUgUEhQIHN1cHBvcnQgZm9yIElNQVAgYW5kIFNNVFAsIGFuZCByZW5kZXJzIGFsbCBwYWdlcyBpbiBwdXJlCkhUTUwgNC4wIGZvciBtYXhpbXVtIGNvbXBhdGliaWxpdHkgYWNyb3NzIGJyb3dzZXJzLiAgSXQgYWxzbyBoYXMKTUlNRSBzdXBwb3J0LCBmb2xkZXIgbWFuaXB1bGF0aW9uLCBldGMKCjQgVFVUT1MKaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy90dXRvcy8KVFVUT1MgaXMgdGhlIHVsdGltYXRlIHRlYW0gb3JnYW5pemF0aW9uIHNvZnR3YXJlLCBhIHdlYi1iYXNlZApncm91cHdhcmUgb3IgRVJQL0NSTSBzeXN0ZW0gdG8gbWFuYWdlIGV2ZW50cy9jYWxlbmRhcnMsIGFkZHJlc3NlcywKdGVhbXMsIHByb2plY3RzLHRhc2tzLGJ1Z3MsbWFpbGJveGVzLGRvY3VtZW50cyBhbmQgeW91ciB0aW1lIHNwZW50CndpdGggdGhlc2UgdGhpbmdzCgo1IEpCb3NzLm9yZwpodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2pib3NzLwpUaGUgSkJvc3MvU2VydmVyIGlzIHRoZSBsZWFkaW5nIE9wZW4gU291cmNlLCBzdGFuZGFyZHMtY29tcGxpYW50LApKMkVFIGJhc2VkIGFwcGxpY2F0aW9uIHNlcnZlciBpbXBsZW1lbnRlZCBpbiAxMDAlIFB1cmUgSmF2YQoKNiBGaXJld2FsbCBCdWlsZGVyCmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZndidWlsZGVyLwpPYmplY3Qtb3JpZW50ZWQgR1VJIGFuZCBzZXQgb2YgY29tcGlsZXJzIGZvciB2YXJpb3VzIGZpcmV3YWxsCnBsYXRmb3Jtcy4gIEN1cnJlbnRseSBpbXBsZW1lbnRlZCBjb21waWxlcnMgZm9yIGlwdGFibGVzLCBpcGZpbHRlcgphbmQgT3BlbkJTRCBwZgoKNyBvcGVuTW9zaXgKaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9vcGVubW9zaXgvCm9wZW5Nb3NpeCBpcyBhIExpbnV4IGtlcm5lbCBleHRlbnNpb24gZm9yIHNpbmdsZS1zeXN0ZW0gaW1hZ2UKY2x1c3RlcmluZy4gIFRha2luZyBuIFBDIGJveGVzLCBvcGVuTW9zaXggZ2l2ZXMgdXNlcnMgYW5kCmFwcGxpY2F0aW9ucyB0aGUgaWxsdXNpb24gb2Ygb25lIHNpbmdsZSBjb21wdXRlciB3aXRoIG4gQ1BVcy4Kb3Blbk1vc2l4IGlzIHBlcmZlY3RseSBzY2FsYWJsZSBhbmQgYWRhcHRpdmUuCgo4IENEZXgKaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jZGV4b3MvCkNEZXggYSBDRC1SaXBwZXIsIHRodXMgZXh0cmFjdGluZyBkaWdpdGFsIGF1ZGlvIGRhdGEgZnJvbSBhbiBBdWRpbwpDRC4gVGhlIGFwcGxpY2F0aW9uIHN1cHBvcnRzIG1hbnkgQXVkaW8gZW5jb2RlcnMsIGxpa2UgTVBFRwooTVAyLE1QMyksIFZRRiwgQUFDIGVuY29kZXJzLgoKOSBwaHBDaHJ5c3RhbCAtIEFuIE9wZW4gSW50cmFuZXQgU3lzdGVtCmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvcGhwY2hyeXN0YWwvCnBocENocnlzdGFsIGlzdCBlaW4gT3BlblNvdXJjZS1JbnRyYW5ldHN5c3RlbSB3ZWxjaGVzIHZvcnJhbmdpZyBhdWYKTGFuLVBhcnR5cyBlaW5nZXNldHp0IHdlcmRlbiBrYW5uLiAgVm9ydGVpbGUgdm9uIHBocENocnlzdGFsIHNpbmQKc2VpbmUgUG9ydGllcmJhcmtlaXQsIEZsZXhpYmlsaXTkdCB1bmQgUGVyZm9ybWFuY2UsIGRhIGVzIHZvbGxlbmRzCmF1ZiBQSFAsIE15U1FMIHVuZCBYTUwgYmFzaWVydAoKMTAgRGV2LUMrKwpodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2Rldi1jcHAvCkRldi1DKysgaXMgYW4gZnVsbC1mZWF0dXJlZCBJbnRlZ3JhdGVkIERldmVsb3BtZW50IEVudmlyb25tZW50CihJREUpIGZvciBXaW4zMiBhbmQgTGludXguICBJdCB1c2VzIEdDQywgTWluZ3cgb3IgQ3lnd2luIGFzCmNvbXBpbGVyIGFuZCBsaWJyYXJpZXMgc2V0LgoKTW9yZSBUb3AgUHJvamVjdHM6Cmh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvdG9wL21vc3RhY3RpdmUucGhwP3R5cGU9d2VlawoKCgoKCkVNQUlMIExJU1QgUkVNT1ZBTDoKCldoZW4gdGhlIFNGLk5FVCB0ZWFtIHNlbmRzIG91dCBhIHNpdGUtd2lkZSBlbWFpbCwgd2Ugc29tZXRpbWVzIHNlZQpyZXBsaWVzIHRoYXQgbG9vayBsaWtlIHRoaXM6ICAiSGV5ISEgSSBkaWRuJ3Qgc3Vic2NyaWJlIHRvIHRoaXMgbGlzdCEhIQpZb3Ugc3BhbW1lci4gSSBoYXRlIHlvdSEgIEkgaGF0ZSB5b3VyIGRvZyEgIChpbnNlcnQgb3RoZXIgY29sb3JmdWwKcGhyYXNlcyBoZXJlKSIuICBUaGUgdHJ1dGggaXMsIHdoZW4geW91IHJlZ2lzdGVyZWQgb24gU291cmNlRm9yZ2UubmV0CnRoZXJlIHdhcyBhIGNoZWNrIGJveCB0aGF0IHNhaWQgIlJlY2VpdmUgU2l0ZS13aWRlIHVwZGF0ZXMsIGxvdwp2b2x1bWUiLiAgWW91IGxlZnQgaXQgY2hlY2tlZCB3aGVuIHlvdSBzdWJtaXR0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBmb3JtLApoZW5jZSB5b3UgYXJlIHJlY2VpdmluZyB0aGlzIGVtYWlsLiAgV2Ugc2VuZCB0aGVzZSB1cGRhdGVzIGV2ZXJ5IDQgdG8gNgp3ZWVrcywgc28gaXQgdHJ1bHkgaXMgbG93IHZvbHVtZS4gIEhvd2V2ZXIgaWYgeW91IHdhbnQgb2ZmLCB0aGlzIGlzIG5vdAphIHByb2JsZW0uICBTaW1wbHkgY2xpY2sgb24gdGhlIGxpbmsgYmVsb3cuCgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CllvdSByZWNlaXZlIHRoaXMgbWVzc2FnZSBiZWNhdXNlIHlvdSBzdWJzY3JpYmVkIHRvIFNvdXJjZUZvcmdlCnNpdGUgbWFpbGluZyhzKS4gWW91IG1heSBvcHQgb3V0IGZyb20gc29tZSBvZiB0aGVtIHNlbGVjdGl2ZWx5CmJ5IGxvZ2dpbmcgaW4gdG8gU291cmNlRm9yZ2UgYW5kIHZpc2l0aW5nIHlvdXIgQWNjb3VudCBNYWludGVuYW5jZQpwYWdlIChodHRwOi8vc291cmNlZm9yZ2UubmV0L2FjY291bnQvKSwgb3IgZGlzYWJsZSB0aGVtIGFsdG9nZXRoZXIKYnkgdmlzaXRpbmcgZm9sbG93aW5nIGxpbms6CjxodHRwOi8vc291cmNlZm9yZ2UubmV0L2FjY291bnQvdW5zdWJzY3JpYmUucGhwP2NoPV9hYzkxMjM0NTY3NTVhNmY3PgoKCg==