Future West Sussex Plan 2015-2019
Future West Sussex Plan 2015-2019

Future West Sussex Plan 2015-2019

The Future West Sussex Plan 2015-2019 sets out how the County Council plans to shape its services for the four year period. There are 24 key performance indicators covering 3 priorities.

To give children the best start in life - We will focus relentlessly on making our county one that provides the support our young people need to achieve the best in life.

To champion the West Sussex economy - A healthy economy will attract, keep and grow businesses that will, in turn, provide high value employment for you, your children and your children’s children.

To support independence in later life - We believe everyone should be given the chance to live long, active, independent and healthy lives whatever their circumstances.

Progress against these 24 measures can be found here.

eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IjM4bW4tNXZnZCIsIm5hbWUiOiJGdXR1cmUgV2VzdCBTdXNzZXggUGxhbiAyMDE1LTIwMTkiLCJtZXRhZGF0YSI6IntcImltYWdlXCI6XCIvYXBpL2Fzc2V0cy9FQjZBREI1RC02M0E2LTQzNDEtQUUwMy1FQ0IzMThBNzY5NUVcIixcImRlc2NyaXB0aW9uXCI6XCJUaGUgRnV0dXJlIFdlc3QgU3Vzc2V4IFBsYW4gMjAxNS0yMDE5IHNldHMgb3V0IGhvdyB0aGUgQ291bnR5IENvdW5jaWwgcGxhbnMgdG8gc2hhcGUgaXRzIHNlcnZpY2VzIGZvciB0aGUgZm91ciB5ZWFyIHBlcmlvZC4gVGhlcmUgYXJlIDI0IGtleSBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzIGNvdmVyaW5nIDMgcHJpb3JpdGllcy5cXG5cXG4qKlRvIGdpdmUgY2hpbGRyZW4gdGhlIGJlc3Qgc3RhcnQgaW4gbGlmZSoqIC0gV2Ugd2lsbCBmb2N1cyByZWxlbnRsZXNzbHkgb24gbWFraW5nIG91ciBjb3VudHkgb25lIHRoYXQgcHJvdmlkZXMgdGhlIHN1cHBvcnQgb3VyIHlvdW5nIHBlb3BsZSBuZWVkIHRvIGFjaGlldmUgdGhlIGJlc3QgaW4gbGlmZS5cXG5cXG4qKlRvIGNoYW1waW9uIHRoZSBXZXN0IFN1c3NleCBlY29ub215KiogLSBBIGhlYWx0aHkgZWNvbm9teSB3aWxsIGF0dHJhY3QsIGtlZXAgYW5kIGdyb3cgYnVzaW5lc3NlcyB0aGF0IHdpbGwsIGluIHR1cm4sIHByb3ZpZGUgaGlnaCB2YWx1ZSBlbXBsb3ltZW50IGZvciB5b3UsIHlvdXIgY2hpbGRyZW4gYW5kIHlvdXIgY2hpbGRyZW7igJlzIGNoaWxkcmVuLlxcblxcbioqVG8gc3VwcG9ydCBpbmRlcGVuZGVuY2UgaW4gbGF0ZXIgbGlmZSoqIC0gV2UgYmVsaWV2ZSBldmVyeW9uZSBzaG91bGQgYmUgZ2l2ZW4gdGhlIGNoYW5jZSB0byBsaXZlIGxvbmcsIGFjdGl2ZSwgaW5kZXBlbmRlbnQgYW5kIGhlYWx0aHkgbGl2ZXMgd2hhdGV2ZXIgdGhlaXIgY2lyY3Vtc3RhbmNlcy5cXG5cXG5Qcm9ncmVzcyBhZ2FpbnN0IHRoZXNlIDI0IG1lYXN1cmVzIGNhbiBiZSBmb3VuZCBoZXJlLlxcblxcblwifSIsImNhdGVnb3JpZXMiOlt7ImlkIjoidW5jYXRlZ29yaXplZCIsIm5hbWUiOiJ1bmNhdGVnb3JpemVkIiwiZ29hbHMiOltdfSx7ImlkIjoiOWFmYi12OWpwIiwibmFtZSI6IkdpdmluZyBjaGlsZHJlbiB0aGUgYmVzdCBzdGFydCBpbiBMaWZlIiwiZ29hbHMiOlt7ImlkIjoia3N1Zy04OXFwIiwibmFtZSI6IllvdW5nIFBlb3BsZSdzIE1lbnRhbCBIZWFsdGgiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcInRleHRcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgQ0FNSFMgKENoaWxkcmVuIGFuZCBBZG9sZXNjZW50IE1lbnRhbCBIZWFsdGggU2VydmljZSkgYW5kIGVtb3Rpb25hbCB3ZWxsYmVpbmcgc2VydmljZXMgYXJlIGNvbW1pc3Npb25lZCBieSBib3RoIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBsb2NhbCBDbGluaWNhbCBDb21taXNzaW9uaW5nIEdyb3VwcyB0byBwcm92aWRlIHNlcnZpY2VzIGZvciB5b3VuZyBwZW9wbGUgaW4gZW1vdGlvbmFsIGRpc3RyZXNzIHdobyByZXF1aXJlIHN1cHBvcnQgZm9yIHRoZWlyIGVtb3Rpb25hbCB3ZWxsYmVpbmcuIENoaWxkcmVuIGFuZCBZb3VuZyBwZW9wbGUgYXJlIHJlZmVycmVkIGJ5IGEgcmFuZ2Ugb2YgY2hpbGRyZW4ncyBwcm9mZXNzaW9uYWwgKGluY2x1ZGluZyBHUHMpIGZvciBhIG51bWJlciBvZiBkaWZmZXJlbnQgcmVhc29ucyBhbmQgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhleSBhcmUgc2VlbiBieSBhcHByb3ByaWF0ZSBzZXJ2aWNlcyBpbiBhIHRpbWVseSBmYXNoaW9uLlxcblxcbldlIGN1cnJlbnRseSBoYXZlIGEgcGVyZm9ybWFuY2UgdGFyZ2V0IG9mIGVuc3VyaW5nIHRoYXQgOTUlIG9mIHlvdW5nIHBlb3BsZSByZWZlcnJlZCB0byB0aGUgc3BlY2lhbGlzdCBDQU1IUyBzZXJ2aWNlIChwcm92aWRlZCBieSBTUEZUIChTdXNzZXggUGFydG5lcnNoaXAgRm91bmRhdGlvbiBUcnVzdCkgYXJlIHNlZW4gd2l0aGluIGZvdXIgd2Vla3MuIFRoaXMgdGFyZ2V0IGlzIGltcGFjdGVkIG9uIGJ5IG51bWJlcnMgb2YgcmVmZXJyYWxzIGFuZCBzdGFmZmluZyBhbmQgcmVjcnVpdG1lbnQgaXNzdWVzIHdoaWNoIGNhbiBmbHVjdHVhdGUgbW9udGggYnkgbW9udGguIENvbW1pc3Npb25lcnMgd29yayB3aXRoIHRoZSBwcm92aWRlciB0byB1bmRlcnN0YW5kIGFueSB2YXJpYXRpb25zIGluIG51bWJlcnMgc2VlbiB3aXRoaW4gNCB3ZWVrcyBhbmQgdG8gc3VwcG9ydCB0aGVtIGluIG1hbmFnaW5nIHRoaXMuXFxuXFxuRm9yIGZ1cnRoZXIgZGV0YWlscyBvZiAyMDE2LzE3IHByb2dyZXNzLCBwbGVhc2Ugc2VlIHRoZSBsaW5rIGJlbG93LlxcblxcbltodHRwczovL3d3dy53ZXN0c3Vzc2V4Lmdvdi51ay9tZWRpYS8xMDA4Ni9tYWtpbmctcHJvZ3Jlc3MtcmVwb3J0LTIwMTYtMTcucGRmXVswXVxcblxcblswXTogaHR0cHM6Ly93d3cud2VzdHN1c3NleC5nb3YudWsvbWVkaWEvMTAwODYvbWFraW5nLXByb2dyZXNzLXJlcG9ydC0yMDE2LTE3LnBkZlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkphbnVhcnkgMjAxOCBVcGRhdGUqKlxcblxcbi0gLSAtXFxuXFxuRHVyaW5nIEphbnVhcnkgdGhlIHBlcmNlbnRhZ2Ugb2YgcmVmZXJyYWxzIHJlY2VpdmluZyBhbiBhc3Nlc3NtZW50IHdpdGhpbiA0IHdlZWtzIHJvc2UgdG8gODclLCBkZXNwaXRlIHRoZSBudW1iZXIgb2YgcmVmZXJyYWxzIGluY3JlYXNpbmcgdGhpcyBtb250aC5cXG5cXG5TZXJ2aWNlcyBhY3Jvc3MgU3Vzc2V4IGNvbnRpbnVlIHRvIGV4cGVyaWVuY2UgY2hhbGxlbmdlcyBpbiBtZWV0aW5nIHRoZSA0IHdlZWsgdGFyZ2V0LCBhcyBhIHJlc3VsdCBvZiBpbmNyZWFzZWQgY2xpbmljYWwgYW5kIHNlcnZpY2UgcmUtZGVzaWduIGRlbWFuZHMgYXMgd2VsbCBhcyBjb21wbGV4aXR5IG9mIHJlZmVycmFscy4gV29ya2ZvcmNlIHJlY3J1aXRtZW50IGFuZCB2YWNhbmNpZXMgcmVtYWlucyBhbiBvbmdvaW5nIGlzc3VlLlxcblxcblRoZSBzZXJ2aWNlIGNvbnRpbnVlcyB0byB3b3JrIHdpdGggdGhlIFN1c3NleCBQYXJ0bmVyc2hpcCBGb3VuZGF0aW9uIFRydXN0IHRvIGRpc2N1c3Mgb25nb2luZyBwZXJmb3JtYW5jZSBvbiBhIGNhc2UgYnkgY2FzZSBiYXNpcywgbG9va2luZyBhdCB0aGVpciByZWFzb25zIGZvciBkZWxheXMsIGFjdGlvbnMgYW5kIGxlc3NvbnMgbGVhcm50LiBJbiB0ZXJtcyBvZiBtaXRpZ2F0aW9uIHRoZSBmb2xsb3dpbmcgaXMgaW4gcGxhY2U6LVxcblxcbiogd29ya2ZvcmNlIHN0cmF0ZWd5IGlzIGJlaW5nIGRldmVsb3BlZCB0byBzdXBwb3J0IHRoZSBhdmFpbGFiaWxpdHkgb2YgY2xpbmljYWwgc3RhZmZcXG5cXG4qIE1vbnRobHkgbWVldGluZ3Mgd2l0aCBTUEZUIHRvIHNlZWsgYXNzdXJhbmNlIGFuZCB1bmRlcnN0YW5kIGlzc3VlcyBmYWNlcyBieSB0aGUgc2VydmljZVxcblxcbiogSm9pbnQgdHJpYWdlIHdpdGggVGllciAyIHNlcnZpY2UgdG8gZW5zdXJlIHRoZSByaWdodCBjaGlsZHJlbiBhcmUgcmVmZXJyZWQgdG8gY2xpbmljYWwgQ0FNSFMgc2VydmljZS5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGVyZSB3ZXJlIDI1OSBuZXcgcmVmZXJyYWxzIGZvciBBdWd1c3QgYW5kIDEwMCUgbWV0IHRoZSA0IHdlZWsgdGFyZ2V0LiBUaGVyZSBoYXMgYmVlbiBhIGRyb3AgaW4gcmVmZXJyYWxzIGluIEF1Z3VzdCwgd2hpY2ggaXMgY29uc2lzdGVudCB3aXRoIHByZXZpb3VzIHllYXJzIGFuZCBjb25zaXN0ZW50IHdpdGggc2Nob29sIGhvbGlkYXlzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIHF1YXJ0ZXIgc2F3IGEgMjAlIGluY3JlYXNlIGluIHJlZmVycmFscyBjb21wYXJlZCB0byBsYXN0IHllYXIsIGFuIGF2ZXJhZ2Ugb2YgMzYwIHJlZmVycmFscyBwZXIgbW9udGggYW5kIHBlYWtpbmcgYXQgNDA5IGluIE1heS5cXG5cXG5TUEZUIGNhcmVzIGZvciBvdXIgbG9jYWwgQ2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSB3aXRoIHRoZSBtb3N0IGNvbXBsZXggbmVlZHMgYW5kIHdlIHdvcmsgY2xvc2VseSB3aXRoIHRoZW0gb24gdGhlIGRldmVsb3BtZW50IG9mIGEgcmFuZ2Ugb2Ygc3BlY2lhbGlzdCBzZXJ2aWNlcyBhbmQgaW5pdGlhdGl2ZXMuIFRoZXNlIGluY2x1ZGUgb3VyIGZhbWlseSBlYXRpbmcgZGlzb3JkZXIgc2VydmljZSwgQSZFIGxpYWlzb24gc2VydmljZSwgYW5kIGNhcmUgZm9yIGxvb2tlZCBhZnRlciBhbmQgYWRvcHRlZCBjaGlsZHJlbiwgdW5hY2NvbXBhbmllZCBhc3lsdW0gc2Vla2VycywgY2hpbGRyZW4gd2l0aCBjb21wbGV4IGJlaGF2aW91cnMgYW5kIGNoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUgaW4gY3Jpc2lzLiBXZSBhcmUgYWxzbyBjdXJyZW50bHkgd29ya2luZyB3aXRoIFNQRlQgdG8gZGV2ZWxvcCBlbmhhbmNlZCBwYXRod2F5cyBmb3IgY2hpbGRyZW4gd2l0aCBuZXVyb2RldmVsb3BtZW50YWwgZGlzb3JkZXJzLiBTUEZUIGFsc28gcHJvdmlkZSBvdXIgY29tbXVuaXR5IG1lbnRhbCBoZWFsdGggbGlhaXNvbiBzZXJ2aWNlLCBvZmZlcmluZyBhZHZpY2UgYW5kIHRyYWluaW5nIGZvciBwcm9mZXNzaW9uYWxzLlxcblxcbk9uZSBvZiB0aGUgc2VydmljZXMgYXZhaWxhYmxlIC0gWUVTIChZb3V0aCBFbW90aW9uYWwgU3VwcG9ydCkgb2ZmZXJzIGVtb3Rpb25hbCBzdXBwb3J0IHRvIG92ZXIgMiwyNTAgeW91bmcgcGVvcGxlIGV2ZXJ5IHllYXIsIHByb3ZpZGluZyBhIHdpZGUgcmFuZ2Ugb2YgZW1vdGlvbmFsIHdlbGxiZWluZyBpc3N1ZXMuIEl0IGhlbHBzIHlvdW5nIHBlb3BsZSB0byBtYWtlIHBvc2l0aXZlIGNob2ljZXMgYW5kIGJ1aWxkIHJlc2lsaWVuY2UuIENsb3NlIHdvcmtpbmcgYW5kIGZvcm1hbCBsaW5rcyB3aXRoIENBSE1TLCBjb3Vuc2VsbGluZyBhbmQgb3RoZXIgc2VydmljZXMgbWVhbnMgdGhhdCBZRVMgY2FuIHByb3ZpZGUgdGFpbG9yZWQsIHNlYW1sZXNzIHN1cHBvcnQsIG9mdGVuIGFkZHJlc3NpbmcgaXNzdWVzIHN1Y2ggYXMgZWR1Y2F0aW9uIGFuZCBlbXBsb3ltZW50IGFsb25nc2lkZSBlbW90aW9uYWwgd2VsbGJlaW5nLiBPcGVyYXRpbmcgZnJvbSA4IEZpbmRJdE91dCBjZW50cmVzIGFjcm9zcyB0aGUgY291bnR5LCBZRVMgYWNjZXB0cyBzZWxmLXJlZmVycmFscyBhbmQgcmVmZXJyYWxzIGZyb20gR1BzIGFuZCBwdWJsaWMgaGVhbHRoIG51cnNlcy4gSXQgY3VycmVudGx5IHNlZXMgYXJvdW5kIDIwMCBuZXcgeW91bmcgcGVvcGxlIGV2ZXJ5IG1vbnRoIGFuZCBpdHMgc3VjY2VzcyBtZWFucyB0aGF0IG9uIGF2ZXJhZ2UgbGVzcyB0aGFuIDMlIHJlcXVpcmUgYSByZWZlcnJhbCB0byBDQU1IUy5cXG5cXG5XZSBjb250aW51ZSB0byBtZWV0IGFuZCB3b3JrIHdpdGggU1BGVCByZWd1bGFybHkgdG8gZW5zdXJlIG9uZ29pbmcgaW1wcm92ZWQgcGVyZm9ybWFuY2UuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4qKlllYXItZW5kIENvbW1lbnRhcnkqKlxcblxcblRoZSBudW1iZXJzIG9mIHJlZmVycmFscyBoYXMgcmVtYWluZWQgY29uc2lzdGVudCwgYXZlcmFnaW5nIGF0IDMzNCBwZXIgbW9udGguIFNQRlQgaGF2ZSBtZXQgdGhlaXIgb3ZlcmFsbCB0YXJnZXQgZm9yIHNlZWluZyA5NSUgb2YgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSB3aXRoaW4gNCB3ZWVrcy5cXG5cXG4qKkhpZ2hsaWdodHMgZm9yIHRoZSB5ZWFyIGluY2x1ZGU6KipcXG5cXG4qIEEgU3Vzc2V4LXdpZGUgZWF0aW5nIGRpc29yZGVyIHNlcnZpY2UgaGFzIGJlZW4gY29tbWlzc2lvbmVkLCBmdW5kZWQgYnkgaGVhbHRoIHRocm91Z2ggdGhlIExUUCAoTG9jYWwgVHJhbnNmb3JtYXRpb24gUGxhbikuIEEgaGlnaCBudW1iZXIgb2YgcmVmZXJyYWxzIChvdmVyIDE1MCBpbiA2IG1vbnRocykgaGF2ZSBiZWVuIHJlY2VpdmVkIHNpbmNlIHRoZSBzZXJ2aWNlIHdhcyBsYXVuY2hlZCBpbiBPY3RvYmVyIDIwMTYsIGluIHBhcnRpY3VsYXIgZnJvbSBXZXN0IFN1c3NleC4gVGhpcyBzZXJ2aWNlIGlzIG5vdGVkIGFzIGV4ZW1wbGFyeSBieSBOSFMgRW5nbGFuZC5cXG5cXG4qIEFkZGl0aW9uYWwgaGVhbHRoIGZ1bmRpbmcgdGhyb3VnaCB0aGUgTFRQIGhhcyBsZWQgdG8gaW52ZXN0bWVudCBpbiBhIHdpZGUgcmFuZ2Ugb2YgYWRkaXRpb25hbCBlbW90aW9uYWwgd2VsbGJlaW5nIGFuZCBtZW50YWwgaGVhbHRoIHNlcnZpY2VzIGluIFdlc3QgU3Vzc2V4LCBpbmNsdWRpbmcgdGhlcmFweSBmb3IgdW5hY2NvbXBhbmllZCBhc3lsdW0gc2Vla2luZyBjaGlsZHJlbiwgd2hvbGUgc2Nob29scyBhbmQgY29sbGVnZXMgYXBwcm9hY2ggdG8gZW1vdGlvbmFsIHdlbGxiZWluZyBhbmQgc2Nob29scywgYWR2b2NhY3kgc2VydmljZSAoMTMwIGNoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUgaGF2ZSByZWNlaXZlZCBzdXBwb3J0IG92ZXIgdGhlIHBhc3QgeWVhciksIGNvdW5zZWxsaW5nIGZvciBjaGlsZHJlbiwgeW91bmcgcGVvcGxlIGFuZCB0aGVpciBmYW1pbGllcyB3aG8gaGF2ZSB3aXRuZXNzZWQgc2V4dWFsIGFidXNlIGFuZCBleHBsb2l0YXRpb24uIFNpbmNlIEp1bHkgMjAxNiBMaWZlY2VudHJlIGhhdmUgc3VwcG9ydGVkIG92ZXIgMTAwIGNoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUuXFxuXFxuKiBUaGUgWUVTIFNlcnZpY2UgZGVsaXZlcmVkIGJ5IElQRUggKEludGVncmF0ZWQgUHJldmVudGlvbiBhbmQgRWFybGllc3QgSGVscCBTZXJ2aWNlKSBoYXZlIHJlY2VpdmVkIG92ZXIgMiwyMDAgcmVmZXJyYWxzIGJldHdlZW4gMjAxNi0xNy4gRHVlIHRvIGRlbWFuZCB0aGUgc2VydmljZSBoYXMgYmVlbiBleHRlbmRlZCB0byBvZmZlciBhIHNlcnZpY2UgZnJvbSAxMy0xOCB5ZWFyIG9sZHMgdG8gMTEtMTggeWVhciBvbGRzLiBUaGlzIHllYXIgdGhlIHNlcnZpY2UgaGFzIHJlcG9ydGVkIHRoYXQgMTElIG9mIGNsaWVudHMgYXJlIGFnZWQgMTEgeWVhcnMuIE9ubHkgMi44JSBvZiBjYXNlcyB3ZXJlIGVzY2FsYXRlZCB0byBDQU1IUy5cXG5cXG4qIEludmVzdG1lbnQgaW4gY291bnNlbGxpbmcgc2VydmljZXMgZm9yIHVuZGVyIDE4IOKAkyBEaWFsb2d1ZSBZTUNBIGhhdmUgcmVjZWl2ZWQgb3ZlciA3NTAgcmVmZXJyYWxzIGZvciBmYWNlIHRvIGZhY2UgY291bnNlbGxpbmcgb3ZlciB0aGUgeWVhciBhbmQgMiwwMDAgeW91bmcgcGVvcGxlIGhhdmUgcmVnaXN0ZXJlZCB0byB1c2UgS29vdGggW2h0dHA6Ly93d3cubmhzLnVrL2NvbmRpdGlvbnMvb25saW5lLW1lbnRhbC1oZWFsdGgtc2VydmljZXMvUGFnZXMva29vdGguYXNweF1bMF0gLiBUaGUgc2VydmljZSByZWNlaXZlcyBhcm91bmQgMSwyNTAgbG9naW5zIGV2ZXJ5IG1vbnRoIGFuZCB0aHJlZSBxdWFydGVycyBvZiB0aGVzZSBhcmUgb3V0c2lkZSBvZiBzY2hvb2wgaG91cnMuXFxuXFxuKiBPdmVyIDc1MCBtZW1iZXJzIG9mIHRoZSBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIHdvcmtmb3JjZSBoYXZlIHRha2VuIHBhcnQgaW4gdHJhaW5pbmcgb24gZW1vdGlvbmFsIHdlbGxiZWluZyBhbmQgdGhlIG1lbnRhbCBoZWFsdGggcHJvZ3JhbW1lIG92ZXIgdGhlIHBhc3QgeWVhci5cXG5cXG4qIFRoZXJlIGhhdmUgYmVlbiBvY2Nhc2lvbnMgd2hlbiBTUEZUIGhhdmUgbm90IG1ldCB0aGUgdGFyZ2V0IG9mIDk1JSBvZiBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIHJlY2VpdmluZyBhcyBzZXJ2aWNlIHdpdGhpbiA0IHdlZWtzLiBUaGVzZSBoYXZlIGJlZW4gZGlzY3Vzc2VkIGFuZCBhZGRyZXNzZWQgd2l0aCBjb21taXNzaW9uZXJzIGFuZCBoYXZlIGJlZW4gb2Z0ZW4gYXNzb2NpYXRlZCB0byBkZW1hbmQgYW5kIGNhcGFjaXR5IGlzc3Vlcy5cXG5cXG5bMF06IGh0dHA6Ly93d3cubmhzLnVrL2NvbmRpdGlvbnMvb25saW5lLW1lbnRhbC1oZWFsdGgtc2VydmljZXMvUGFnZXMva29vdGguYXNweFwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW5jcmVhc2UgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB3aXRoIGEgbWVudGFsIGhlYWx0aCByZWZlcnJhbCByZWNlaXZpbmcgYW4gYXNzZXNzbWVudCB3aXRoaW4gZm91ciB3ZWVrcyBvZiByZWZlcnJhbFwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgcGVyY2VudGFnZSBvZiBjaGlsZHJlbiB3aXRoIGEgbWVudGFsIGhlYWx0aCByZWZlcnJhbCByZWNlaXZpbmcgYW4gYXNzZXNzbWVudCB3aXRoaW4gZm91ciB3ZWVrcyBvZiByZWZlcnJhbCBcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxMy0wMy0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0X3R5cGUiOiJyZWxhdGl2ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6OTUsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiZmRqOC1ycm1rIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTN9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwibWFpbnRhaW5cIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH19LFwic3RhcnRcIjpcIjIwMTQtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTQtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJ0aGUgcGVyY2VudGFnZSBvZiBwZW9wbGUgd2l0aCBhIG1lbnRhbCBoZWFsdGggcmVmZXJyYWwgcmVjZWl2aW5nIGFuIGFzc2Vzc21lbnQgd2l0aGluIGZvdXIgd2Vla3NcIixcImlzX2J1cm5kb3duX2Rpc2FibGVkXCI6ZmFsc2UsXCJpc190cmVuZGxpbmVfZGlzYWJsZWRcIjp0cnVlfSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMVQxNjoxMzowNy4wMzlaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MTA6NDQuMzAzWiIsInZlcnNpb24iOiIyMDE4LTA0LTExVDE2OjEzOjA3LjAzOVoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoxMCwiaWQiOiJzOHg1LXp6NWYifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTY6MTM6MTguMTA1WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjEwOjQ0LjM2M1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxNjoxMzoxOC4xMDVaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJraTd6LXM1c3giLCJuYW1lIjoiQ2hpbGRyZW4ncyBIZWFsdGh5IFdlaWdodCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRocm91Z2ggaXRzIFB1YmxpYyBIZWFsdGggcm9sZSwgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgcHJvdmlkZXMgbGVhZGVyc2hpcCB0byBhIGNvdW50eSB3aWRlIGhlYWx0aHkgd2VpZ2h0IG5ldHdvcmsgd2l0aCByZXByZXNlbnRhdGl2ZXMgZnJvbSBtYW55IG9yZ2FuaXNhdGlvbnMgcmVndWxhcmx5IGF0dGVuZGluZy4gVGhlIG5ldHdvcmsgYWN0cyBhcyBhIHN1cHBvcnQgZm9yIGtleSBsb2NhbCBwYXJ0bmVyIG9yZ2FuaXNhdGlvbnMgZGVsaXZlcmluZyB0aGUgYWN0aW9ucyBpbiB0aGUgV2VzdCBTdXNzZXggSGVhbHRoeSB3ZWlnaHQgb3BlcmF0aW9uYWwgcGxhbiAyMDE0LTE3ICh0aGUgcmVmcmVzaCBvZiB0aGUgZWFybGllciByZXBvcnQg4oCYQ3JpdGljYWwgTWFzc+KAmSkuIEJvdGggcHJldmVudGlvbiBhbmQgbWFuYWdlbWVudCBvZiBvdmVyd2VpZ2h0IGFuZCBvYmVzZSBmb3IgYWxsIGFnZSBncm91cHMgZmFsbCB3aXRoaW4gc2NvcGUgZm9yIHRoZSBuZXR3b3JrLiBUaGUgbmV0d29yayBvdmVyc2VlcyBhbmQgbWFpbnRhaW5zIHBhdGh3YXlzIChhY3Jvc3MgYSBudW1iZXIgb2Ygc2VwYXJhdGUgY29tbWlzc2lvbmluZyBhbmQgcHJvdmlkZXIgb3JnYW5pc2F0aW9ucykgdG8gaW1wcm92ZSBob3cgZWZmZWN0aXZlbHkgdGhleSBtZWV0IHRoZSBuZWVkcyBvZiBmYW1pbGllcywgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZS4gVGhpcyBpbmNsdWRlcyB0cmFpbmluZyBmcm9udGxpbmUgc3RhZmYgdG8gaWRlbnRpZnkgaW5kaXZpZHVhbHMgaW4gbmVlZCBvZiBhZGRpdGlvbmFsIHN1cHBvcnQgYW5kIHJlZmVycmFsLlxcblxcbk5hdGlvbmFsIENoaWxkIE1lYXN1cmVtZW50IFByb2dyYW1tZSBkYXRhIHByb3ZpZGUgYSBwcm94eSBmb3IgcG9wdWxhdGlvbiBwcmV2YWxlbmNlIG9mIGhlYWx0aHkgd2VpZ2h0LCBvdmVyd2VpZ2h0IGFuZCBvYmVzZSBpbiB0d28gc2Nob29sIHllYXIgZ3JvdXBzIGFuZCBhcmUgcmVmcmVzaGVkIGFubnVhbGx5LlxcblxcbiBcXG5cXG5UaGUgbmF0aW9uYWwgQ2hpbGQgb2Jlc2l0eSBhY3Rpb24gcGxhbiB3YXMgcHVibGlzaGVkIGluIEF1Z3VzdCAyMDE2LiBJdCBpZGVudGlmaWVzIDE0IGFjdGlvbnMgZm9yIG5hdGlvbmFsIG9yIGxvY2FsIHByb2dyZXNzaW9uLiBbaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL2NoaWxkaG9vZC1vYmVzaXR5LWEtcGxhbi1mb3ItYWN0aW9uXVswXS4gSXQgcGxhY2VzIGEgbG90IG9mIGVtcGhhc2lzIG9uIHRoZSByb2xlIG9mIHNjaG9vbHMgdG8gcHJvbW90ZSBwaHlzaWNhbCBhY3Rpdml0eSBhbmQgaGVhbHRoeSBlYXRpbmcuXFxuXFxuXFxuXFxuWzBdOiBodHRwczovL3d3dy5nb3YudWsvZ292ZXJubWVudC9wdWJsaWNhdGlvbnMvY2hpbGRob29kLW9iZXNpdHktYS1wbGFuLWZvci1hY3Rpb25cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMg4oCTIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipOQ01QIEZpZ3VyZXMgUHVibGlzaGVkKipcXG5cXG5OSFMgRGlnaXRhbCBwdWJsaXNoZWQgdGhlIG1vc3QgcmVjZW50IE5hdGlvbmFsIENoaWxkaG9vZCBNZWFzdXJlbWVudCBQcm9ncmFtbWUgKE5DTVApIGZpZ3VyZXMgaW4gT2N0b2JlcjsgdGhlc2UgYXJlIHRoZSByZXN1bHRzIGZvciB0aGUgMjAxNi8xNyBhY2FkZW1pYyB5ZWFyLiBJbiBXZXN0IFN1c3NleCwgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB3aG8gYXJlIGNsYXNzaWZpZWQgYXMgb2Jlc2UgaW4gWWVhciA2IGhhcyBiZWVuIGNvbnNpc3RlbnRseSBsb3dlciB0aGFuIHRoZSBmaWd1cmVzIGZvciBFbmdsYW5kIHNpbmNlIDIwMDYvMDcsIGFuZCB0aGlzIHJlbWFpbnMgdGhlIGNhc2UgZm9yIDIwMTYvMTcuSW4gWWVhciA2LCAyOC42JSBvZiBjaGlsZHJlbiBpbiBXZXN0IFN1c3NleCB3ZXJlIGNsYXNzaWZpZWQgYXMgb3ZlcndlaWdodCBvciBvYmVzZSwgYSBkZWNyZWFzZSBmcm9tIDIwMTUvMTYuIDcwLjMlIG9mIFllYXIgNiBjaGlsZHJlbiB3ZXJlIGNsYXNzaWZpZWQgYXMgaGVhbHRoeSB3ZWlnaHQsIGhpZ2hlciB0aGFuIHRoZSBwcmV2YWxlbmNlIGZvciBib3RoIHRoZSBTb3V0aCBFYXN0IGFuZCBFbmdsYW5kLiBUaGlzIHBlcmNlbnRhZ2UgaXMgaGlnaGVyIHRoYW4gdGhlIHByZXZpb3VzIHRocmVlIHllYXJzLCBhbmQgdGhlIHBlcmNlbnRhZ2Ugb2YgY2hpbGRyZW4gY2xhc3NpZmllZCBhcyBoZWFsdGh5IHdlaWdodCBmb3IgWWVhciA2IGhhcyBiZWVuIGNvbnNpc3RlbnRseSBoaWdoZXIgdGhhbiBFbmdsYW5kIHNpbmNlIDIwMDYvMDcuXFxuXFxuIFxcblxcbjcwLjMlIHBsYWNlcyBXZXN0IFN1c3NleCBhdCBncmVlbiBjb21wYXJlZCB0byB0YXJnZXQuXFxuXFxuIFxcblxcblRoZSBwcmV2YWxlbmNlIG9mIG9iZXNpdHkgd2FzIGxvd2VzdCBpbiBIb3JzaGFtICgxMC4yJSkgYW5kIE1pZCBTdXNzZXggKDEyLjIlKSBidXQgaGlnaGVzdCBpbiBBcnVuICgxOS44JSkuXFxuXFxuIFxcblxcblRoZSBwcmV2YWxlbmNlIG9mIGNoaWxkcmVuIGluIFllYXIgNiAoZGVyaXZlZCBmcm9tIHRoZSBwb3N0Y29kZSBvZiB0aGUgc2Nob29sKSBjbGFzc2lmaWVkIGFzIG92ZXJ3ZWlnaHQgYW5kIG9iZXNlIGNvbWJpbmVkLCBhcyBhIHBlcmNlbnRhZ2UuXFxuXFxuKipUaGUgV2VzdCBTdXNzZXggQXBwcm9hY2gqKlxcblxcbiBcXG5cXG5XaXRoaW4gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwsIHRoZSBJbnRlZ3JhdGVkIFByZXZlbnRpb24gYW5kIEVhcmxpZXN0IEhlbHAgKElQRUgpIHNlcnZpY2UgKENvdW5jaWwgYW5kIEhlYWx0aHkgQ2hpbGQgUHJvZ3JhbW1lIHNlcnZpY2UgLSBIQ1ApIGFpbXMgdG8gcHJldmVudCBhbmQgcmVkdWNlIGV4Y2VzcyB3ZWlnaHQgdGhyb3VnaCBib3RoIHVuaXZlcnNhbCBhbmQgdGFyZ2V0ZWQgYXBwcm9hY2hlcyBhdCBjb21tdW5pdHkgYW5kIGluZGl2aWR1YWwgbGV2ZWwuXFxuXFxuVGhlIHdvcmsgYnkgSVBFSCB0byByZWR1Y2UgY2hpbGRob29kIG9iZXNpdHkgaXMgYmVpbmcgZGV2ZWxvcGVkIGFzIHBhcnQgb2YgYSB3aWRlciAwLTE5LzI1IGludGVncmF0ZWQgc2VydmljZSBvZmZlci4gRXZpZGVuY2Ugc3VnZ2VzdHMgdGhhdCB3ZSBuZWVkIHRvIHRyeSBhbmQgZm9jdXMgZWZmb3J0cyBvbiByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUgYmVjb21pbmcgb3ZlcndlaWdodCAoU3RlZmF0ZXIgZXQgYWwsIDIwMTMpLiBBIE1ha2luZyBFdmVyeSBDb250YWN0IENvdW50IChNRUNDKSBhcHByb2FjaCB3aWxsIGJlIHVzZWQgdG8gcHJvbW90ZSBoZWFsdGh5IGVhdGluZyBhbmQgbGlmZXN0eWxlcyBjb25zaXN0ZW50bHkgaW4gYm90aCB1bml2ZXJzYWwgYW5kIHRhcmdldGVkIHdvcmsgd2l0aCBjaGlsZHJlbiBhbmQgZmFtaWxpZXMuVGhlIG1vZGVsIGJlbG93IHByZXNlbnRzIHRoZSBvZmZlciBmcm9tIElQRUggdG8gY2hpbGRyZW4sIHlvdW5nIHBlb3BsZSBhbmQgZmFtaWxpZXMgYXQgZWFjaCBsZXZlbCBvZiBzZXJ2aWNlIGFjcm9zcyB0aGUgV2VzdCBTdXNzZXggY29udGludXVtIG9mIG5lZWQuIE90aGVyIHN1cHBvcnRpdmUgY29tbXVuaXR5IHNlcnZpY2VzIC8gb3JnYW5pc2F0aW9ucyBhcmUgYWxzbyByZWZsZWN0ZWQuXFxuXFxuQ2hhbmdlNExpZmVcXG5cXG5BIG5ldyBDaGFuZ2U0IExpZmUgY2FtcGFpZ24gbGF1bmNoaW5nIGluIEphbnVhcnkgMjAxOCBhaW1zIHRvIGhlbHAgZmFtaWxpZXMgY2hvb3NlIGhlYWx0aGllciBzbmFja3MuIEl0IHdpbGwgaW50cm9kdWNlIHRoZSBuZXcgc2ltcGxlIHRpcCBvZiDigJxMb29rIGZvciAxMDAgY2Fsb3JpZSBzbmFja3MsIHR3byBhIGRheSBtYXjigJ1UaGUgY2FtcGFpZ24gd2lsbCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENoYW5nZTRMaWZlIOKAnCBGb29kIHNjYW5uZXIgQXBw4oCdIHdoaWNoIHdpbGwgc2hvdyBob3cgbXVjaCBzdWdhciwgc2FsdCBhbmQgc2F0dXJhdGVkIGZhdCBpcyBpbnNpZGUgc25hY2sgZm9vZHMgYW5kIGRyaW5rcyBUaGlzIGFwcCB3aWxsIHJlcGxhY2UgdGhlIHByZXZpb3VzIEJlIEZvb2QgU21hcnQgYXBwIGFuZCB3aWxsIHByb3ZpZGUgY2Fsb3JpZSBpbmZvcm1hdGlvbiwgd2lsbCBoYXZlIGFuIGltcHJvdmVkIHJlc3VsdHMgbGF5b3V0IGFuZCBjb25zdGFudGx5IGltcHJvdmluZyBwcm9kdWN0IGRhdGEuXFxuXFxuUHVibGljIEhlYWx0aCBpcyB3b3JraW5nIHdpdGggaXRzIGNvbGxlYWd1ZXMgaW4gV2VzdCBTdXNzZXggTGlicmFyaWVzIGFuZCBsZWlzdXJlIGNlbnRyZXMgZnJvbSB0aGUgZW5kIG9mIEphbnVhcnkgdG8gcHJvbW90ZSB0aGUgRmFtaWx5IFNuYWNrIGNoYWxsZW5nZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5FYXQgUmlnaHQgU3RheSBCcmlnaHQgKCBFUlNCKSBpcyBkZWxpdmVyZWQgdG8gc2Nob29scyBpbiBXZXN0IFN1c3NleCBhcyBwYXJ0IG9mIHRoZSBzY2hvb2wgbWVhbCBjb250cmFjdCB3aXRoIENoYXJ0d2VsbHMuIEl0IGFpbXMgdG8gaW5jcmVhc2UgdXB0YWtlIG9mIHRoZSBzY2hvb2wgbWVhbHMgYW5kIGltcGFjdCB1cG9uIG9iZXNpdHkgcmF0ZXMgYW5kIHRoZSBhdHRhaW5tZW50IGdhcCBiZXR3ZWVuIHRoZSBtb3N0IGFkdmFudGFnZWQgYW5kIGRpc2FkdmFudGFnZWQuIEl0IGlzIGEgRnVuIGluIHRvIEZvb2QgcHJvZ3JhbW1lIHRhY2tsaW5nIG51dHJpdGlvbiBlZHVjYXRpb24gd2l0aCBhIHdob2xlIHNjaG9vbCBhcHByb2FjaC5cXG5cXG5UaGUgZmlyc3QgeWVhciBvZiB0aGUgcHJvZ3JhbW1lIGluIFdlc3QgU3Vzc2V4IGhhcyBzZWVuIDMyIHNjaG9vbHMgZW5nYWdlIHdpdGggRVJTQiB3aXRoIDY4IGRpZmZlcmVudCB3b3Jrc2hvcCBzZXNzaW9ucyBydW4uIFR3ZWx2ZSBzY2hvb2xzIGhhdmUgaGFkIHJlcGVhdCB2aXNpdHMuIEFwcHJveCAxLDkwNCBjaGlsZHJlbiBoYXZlIHRha2VuIHBhcnQgaW4gdGhlIHdvcmtzaG9wcyBhbmQgcGFyZW50IGV2ZW50cyBoYXZlIGFsc28gYmVlbiBoZWxkIDU3IHRpbWVzLlxcblxcbkZlZWRiYWNrIGZyb20gdGhlIHdvcmtzaG9wcyBpbiBvbmUgc2Nob29sIGlzIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlJlY2VwdGlvbiBUZWFjaGVyKiog4oCTIOKAmFdlIGluIHBhcnRpY3VsYXIgaGFkIGEgdmVyeSBwb3NpdGl2ZSBleHBlcmllbmNlIGZvciBvbmUgYm95IHdobyBoYXMgYW4gaXNzdWUgd2l0aCBlYXRpbmcgdGhhdCBjb21lcyB3aXRoIGFzc29jaWF0ZWQgaGVhbHRoIGlzc3Vlcy4gSGUgd2FzIGhhcHB5IHRvIHRyeSBzb21lIG9mIHRoZSBmcnVpdCBhbmQgc2FsYWQgdGhhdCBoZSBwcmV2aW91c2x5IGhhcyBub3Qgd2FudGVkIHRvIHRyeS4gQXMgYSB3aG9sZSBjbGFzcyB3ZSB3ZXJlIHZlcnkgcHJvdWQgb2YgdGhpcyBhY2hpZXZlbWVudCBhbmQgaGUgcmVjZWl2ZWQgYSAnd293JyBtb21lbnQgY2VydGlmaWNhdGUgdG8gdGFrZSBob21lIHRvIGhpcyBtdW0gd2l0aCBwaG90b3Mgb2Ygd2hhdCBoZSBoYWQgZG9uZSB0aGF0IGRheS4gV2UgZmVlbCBoZSB3YXMgaGFwcHkgdG8gdHJ5IHRoZXNlIGZvb2RzIGFzIGl0IHdhcyBkb25lIGluIGEgcmVsYXhlZCBhbmQgZnVuIG1hbm5lci4gSGUgaGFzIG5vdyBiZWVuIGEgbGl0dGxlIG1vcmUgd2lsbGluZyB0byB0cnkgbW9yZSBuZXcgZm9vZHMgaW4gY2xhc3MgYXQgc25hY2sgdGltZS7igJlcXG5cXG4gXFxuXFxuKipSZWNlcHRpb24gVGVhY2hlcioqIOKAkyDigJhUaGUgY2hpbGRyZW4gaGFkIGEgbG92ZWx5IHRpbWUgd2l0aCB5b3Vyc2VsZiBhbmQgeW91ciBjb2xsZWFndWUgbGVhcm5pbmcgYWJvdXQgaGVhbHRoeSBlYXRpbmcgYW5kIHRoZSBvcHBvcnR1bml0eSBmb3Igc29tZSBmb29kIHRhc3RpbmcuIFRoaXMgd2FzIGEgbG92ZWx5IGV4cGVyaWVuY2UgZm9yIHRoZSBjaGlsZHJlbiB0byB0cnkgYSB2YXJpZXR5IG9mIGZydWl0IG9yIHNhbGFkIHRoYXQgdGhleSBtYXkgbm90IGhhdmUgdHJpZWQgYmVmb3JlLuKAmSAtXFxuXFxuIFxcblxcbioqWWVhciAyIFRlYWNoZXIqKiDigJMg4oCYSXTigJlkIGJlIHdvbmRlcmZ1bCB0byBoYXZlIHlvdSBpbiBhZ2FpbiBmb3IgYSBkaWZmZXJlbnQgdG9waWMgd2l0aCB0aGUgY2hpbGRyZW4uIEkga25vdyB0aGF0IG1hbnkgaW4gbXkgY2xhc3MgZG8gc3RydWdnbGUgdG8gZWF0IHRoZSB2ZWdldGFibGVzIGJ1dCB0aGV5IGFsc28gb25seSBrbm93IGFib3V0IHRoZSB0eXBpY2FsIHZlZ2V0YWJsZXMuIFRoZXkgd291bGRu4oCZdCBrbm93IHdoYXQgYSByaHViYXJiIGlzIGZvciBleGFtcGxlIGFuZCBpdCBzZWVtcyBzdWNoIGEgc2hhbWUu4oCZXFxuXFxuKipQYXJlbnQqKiDigJMg4oCYSeKAmW0gYWN0dWFsbHkgcmVhbGx5IHN1cnByaXNlZCB0aGF0IHRoZXNlIGNvbnRhaW4gdGhhdCBtdWNoIHN1Z2FyLiBXaHkgaXMgaXQgYWxsb3dlZD8gTXkgaHVzYmFuZCB3aWxsIGJlIGhvcnJpZmlmZWQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNUNBQkNGQTEtODdGRS00MjIzLUIyQUItNjcxNzY5NzZFRERCXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMzk5RERDQkYtNDYwNy00QkFDLTk3MTctRjk4NjI4NEIyQzRBXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBFYXQgUmlnaHQgU3RheSBSaWdodCB3b3Jrc2hvcHMgaW4gV2VzdCBTdXNzZXggc3VwcG9ydCB0aGUgY291bnR54oCZcyBzdWdhciByZWR1Y3Rpb24gcHJvZ3JhbW1lLlxcblxcbioqWWVhciA1IFB1cGlsKirigJMg4oCYSSB0aGluayBJIGVhdCB0b28gbXVjaCBjaG9jb2xhdGUgYWZ0ZXIgRWFzdGVyIEkgd2FudCB0byB0cnkgc3RvcHBpbmcgZWF0aW5nIGl0IGJ1dCBJIHdpbGwgaGF2ZSBhbGwgbXkgZWFzdGVyIGVnZ3PigJkuIEFmdGVyIGRpc2N1c3Npb24gd2l0aCB0aGUgRVJTQiBjb29yZGluYXRvciBhbmQgY2xhc3NtYXRlcyB0aGUgY2hpbGQgb3B0ZWQgdG8gdHJ5IGdpdmluZyB1cCBjaG9jb2xhdGUgZm9yIGxlbnQuXFxuXFxuKipZZWFyIDUgVGVhY2hlcioq4oCT4oCYSXTigJlzIGdyZWF0IHRvIHRlYWNoIHRoZW0gYWxsIGFib3V0IHdoYXQgY2FuIGhhcHBlbiBsYXRlciBvbiBpbiBsaWZlIHdpdGggaGVhcnQgZGlzZWFzZSBhbmQgZGlhYmV0ZXMuIFRoZXkgb2Z0ZW4ganVzdCB0aGluayBhYm91dCB0aGUgZWZmZWN0IG9uIHRoZWlyIHRlZXRoIGJlY2F1c2UgaXTigJlzIHNvbWV0aGluZyB0aGV5IGNhbiBwaHlzaWNhbGx5IHNlZSBhbmQgcHJvYmFibHkgaGF2ZSBzZWVuIG9uIGNoaWxkcmVuIHRoZWlyIGFnZS7igJlcXG5cXG4qKlllYXIgNiBQdXBpbCoq4oCTIOKAmE15IGRhZCBkcmlua3MgdGhpcyBxdWl0ZSBhIGxvdCAoTW9uc3RlciBFbmVyZ3kgRHJpbmspIGFuZCBpdOKAmXMgdHdpY2UgdGhlIGFtb3VudCBvZiBzdWdhciBoZeKAmXMgYWxsb3dlZC4gSeKAmW0gZ29pbmcgdG8gdGVsbCBoaW3igJkuXFxuXFxuKipZZWFyIDUgUHVwaWwqKuKAkyDigJhZb3Ugc2FpZCB0b21hdG8ga2V0Y2h1cCB3YXMgcmVhbGx5IHN1Z2FyeTsgaXMgaXQgd29yc2UgdGhhbiB0aGVzZSBkcmlua3M/4oCZIEVSU0IgY29vcmRpbmF0b3IgZW5jb3VyYWdlZCB0aGUgcHVwaWwgdG8gbG9vayBhdCB0aGUgbGFiZWxzIG9mIGhpcyBib3R0bGUgYXQgaG9tZS4uIO+Ct1xcblxcbioqVGVhY2hpbmcgQXNzaXN0YW50KirigJMg4oCYSSBoYXZlIG9uZSBvZiB0aG9zZSBtaWxrc2hha2VzIGluIG15IGZyaWRnZS4gSSBtaWdodCB0aHJvdyBpdCBvdXQgbm934oCZLiBGdXR1cmUgY29udmVyc2F0aW9ucyB3aXRoIFRBIHJldmVhbGVkIHRoZSBjaGlsZHJlbiByZW1pbmRlZCB0aGUgVEEgdG8gdGhyb3cgb3V0IHRoZSBkcmluay5cXG5cXG5MaXZpbmcgU3RyZWV0cyBkZWxpdmVyIFdhbGsgT25jZSBhIFdlZWsgcHJvZ3JhbW1lcyBpbiBzY2hvb2xzIGluIFdlc3QgU3Vzc2V4LiBUaGV5IGhhdmUgYSBsaXN0IG9mIHNjaG9vbHMgdG8gdGFyZ2V0LCB0aGF0IGZpdCB3aXRoIHRoZSBXZXN0IFN1c3NleCBTdHJhdGVnaWMgZGV2ZWxvcG1lbnQgc2l0ZXMsIHBsdXMgcHVibGljIGhlYWx0aCBwcmlvcml0eSBhcmVhcy4gNSBvdXQgb2YgMTAgbmV3IHByaW1hcnkgc2Nob29scyBhcmUgZW5yb2xsZWQgdG8gV09XLCB0aGUgeWVhci1yb3VuZCB3YWxrIHRvIHNjaG9vbCBjaGFsbGVuZ2UuXFxuXFxuVGhlc2UgYXJlOlxcblxcbkNoaWRoYW0gUGFyb2NoaWFsIFByaW1hcnlcXG5cXG5Bc2h1cnN0IFdvb2QgUHJpbWFyeSwgRWFzdCBHcmluc3RlYWRcXG5cXG5EdXJyaW5ndG9uIEp1bmlvciBTY2hvb2xcXG5cXG5TaGVkZGluZ2RlYW4gUHJpbWFyeSwgQnVyZ2VzcyBIaWxsXFxuXFxuSGVlbmUgUHJpbWFyeSBTY2hvb2wsIFdvcnRoaW5nXFxuXFxu4oCmYWxsIGlmIHdoaWNoIGFyZSBvbiB0aGUgdGFyZ2V0ZWQgbGlzdCBvZiBleHBhbmRpbmcgc2Nob29scywgb3IgaGF2ZSB3b3JrcyBzY2hlZHVsZWQuIEZvdXIgb2YgdGhlc2Ugc2Nob29scyBoYXZlIGxhdW5jaGVkIGFuZCBhcmUgdXNpbmcgVHJhdmVsIFRyYWNrZXIgdG8gbG9nIHRoZWlyIGRhaWx5IGpvdXJuZXlzIHRvIHNjaG9vbC5cXG5cXG4zIHN0cmVldCBhdWRpdHMgYXJlIHBsYW5uZWQsIDIgb2YgdGhlbSB3aXRoIFBhcmtsYW5kcyBSZXNpZGVudHMgQXNzb2NpYXRpb24gaW4gQ2hpY2hlc3RlciwgYSBsYXJnZSBob3VzaW5nIGVzdGF0ZSB3aXRoIGFyb3VuZCAxLDUwMCByZXNpZGVuY2VzLCBvbiB0aGUgZWRnZSBvZiB0aGUgY2l0eSBjZW50cmUgd2l0aCAyIHByaW1hcnkgc2Nob29scywgYSBzZWNvbmRhcnkgc2Nob29sLCBhbiBOSFMgZG9jdG9ycyBzdXJnZXJ5IGFuZCBhIHBhcmFkZSBvZiBzaG9wcyB3aXRoaW4gaXRzIGJvdW5kYXJ5LiBXZSB3aWxsIHJ1biAyIGF1ZGl0cywgYXQgZGlmZmVyZW50IHRpbWVzIG9mIHllYXIsIGFuZCBhcmUgdGFsa2luZyB0byBCaXNob3AgTHVmZmEgU2Nob29sLCBQYXJrbGFuZHMgQ29tbXVuaXR5IFByaW1hcnkgYW5kIENlbnRyYWwgU2Nob29sIGFib3V0IHRoZWlyIHBvdGVudGlhbCBpbnZvbHZlbWVudCBpbiB0aGUgYXVkaXQgcHJvY2Vzcy4gV2UgaG9wZSB0byBzaW11bHRhbmVvdXNseSBpbnZvbHZlIHJlc2lkZW50cyBhcm91bmQgdGhlIGVzdGF0ZSB3aG8gd2lsbCB1bmRlcnRha2UgdGhlaXIgb3duIOKAmHN0cmVldCBzY2FsZSBzdXJ2ZXlz4oCZIHRvIGVuc3VyZSB0aGF0IHRoZSBhdWRpdCBwcm9jZXNzIGlzIGFzIGluY2x1c2l2ZSBhbmQgaG9saXN0aWMgYXMgcG9zc2libGUuIFRoZSBSZXNpZGVudHMgQXNzb2NpYXRpb24gd2lsbCB0aGVuIGJlIGFibGUgdG8gbWFwIHRoZSByZXN1bHRzIHRvIGluZm9ybSBwcmlvcml0aWVzIGZvciB0aGUgZXN0YXRlLiBUaGlzIHdpbGwgYmUgYSB0cmlhbCBhcHByb2FjaCBmb3IgTGl2aW5nIFN0cmVldHMgYW5kIHdpbGwgYmUgdmVyeSBpbnRlcmVzdGluZyB0byBzZWUgdGhlIG91dGNvbWVzIGFuZCBob3cgaXQgY2FuIGV2b2x2ZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuU3VnYXIgcmVkdWN0aW9uIHByb2dyYW1tZSAtIEZ1cnRoZXIgc3VnYXIgcmVkdWN0aW9uIGhhcyBvY2N1cnJlZCBpbiB0aGUgc2Nob29sIG1lYWxzIHByb3ZpZGVkIHRocm91Z2ggdGhlIENoYXJ0d2VsbCBjb250cmFjdCBhbmQgdGhleSBub3cgY29udGFpbiA2NSUgbGVzcyBzdWdhciB0aGFuIHRoZXkgZGlkIHR3byBhbmQgYSBoYWxmIHllYXJzIGFnby4gSW4gdG90YWwgMzAsMDAwIFdlc3QgU3Vzc2V4IGNoaWxkcmVuIHBlciBkYXkgYXJlIGJlbmVmaXRpbmcuIFRoZSBkYWlseSBzdWdhciBjb25zdW1wdGlvbiBoYXMgcmVkdWNlZCBmcm9tIHRoZSAxOC41ZyB0byA2LjZnIHBlciBjaGlsZC5cXG5cXG5UaGUgRXhlY3V0aXZlIENoaWxkIE9iZXNpdHkgVGFzayBhbmQgRmluaXNoIEdyb3VwIChURkcpIHdoaWNoIGNvbXBsZXRlZCBpbiBNYXJjaCAyMDE3IG1hZGUgYSBudW1iZXIgb2YgcmVzb2x1dGlvbnMgaW5jbHVkaW5nOi1cXG5cXG4xLiBEZXZlbG9wIGEgQ291bnR5IENvdW5jaWwgY2hhcnRlciBzdXBwb3J0aW5nIHNpZ251cCB0byB0aGUgbmF0aW9uYWwgaGVhbHRoeSByYXRpbmcgb2Ygc2Nob29scyBzY2hlbWUsIGluY2x1ZGluZyBhIGxvY2FsIGF3YXJkIHNjaGVtZSB0byBlbmNvbXBhc3MgYWxsIFdlc3QgU3Vzc2V4IG51cnNlcmllcywgc2Nob29scyAoIGluY2x1ZGluZyBzcGVjaWFsIHNjaG9vbHMpLCBsb29rZWQgYWZ0ZXIgY2hpbGRyZW4sY2hpbGRyZW4gYW5kIGZhbWlseSBjZW50cmVzIGFuZCBpbmNsdWRpbmcgbGVpc3VyZSBjZW50cmVzIHdoZXJlIGFwcHJvcHJpYXRlLlxcblxcbjEuIFRoYXQgd2hlbiB0aGV5IGJlY29tZSBhdmFpbGFibGUsIHRoZSBuYXRpb25hbCBndWlkZWxpbmVzIGZvciBpbXBsZW1lbnRhdGlvbiBvZiBoZWFsdGhpZXIgZm9vZCBpbiBsZWlzdXJlIGNlbnRyZXMgYXJlIHByb3ZpZGVkIHRvIHRoZSBDYWJpbmV0IE1lbWJlciBhbmQgZ3VpZGFuY2UgYW5kIHN1cHBvcnQgaXMgb2ZmZXJlZCB0byB0aGUgRGlzdHJpY3QgYW5kIEJvcm91Z2hzLCBhcyBjb21taXNzaW9uZXJzIG9mIGxlaXN1cmUsIHRvIGhlbHAgdGhpcyBzZWN0b3IgYWNoaWV2ZSB0aGVzZSBzdGFuZGFyZHMuXFxuXFxuMS4gVG8gbWFpbnRhaW4gYSBsb25nIHRlcm0gY29tbWl0bWVudCB0byB0aGUgQ291bnR5IENvdW5jaWwgQ2hhcnRlciBpbmNsdWRpbmcgYSDigJxoZWFsdGggaW1wYWN0IGFzc2Vzc21lbnTigJ10byBlbnN1cmUgdGhhdCBhbnkgY2hhbmdlcyB0byBwbGFubmluZyBhbmQgcG9saWN5IHdpdGhpbiBlYWNoIGVzdGFibGlzaG1lbnQsIGNvbnNpZGVycyB0aGUgd2lkZXIgaW1wYWN0IG9uIHRoZSBoZWFsdGggYW5kIHdlbGxiZWluZyBvZiB5b3VuZyBwZW9wbGUuXFxuXFxuMS4gVGhlIFB1YmxpYyBIZWFsdGggVGVhbSBhcnJhbmdlIGZvciBhIGdyb3VwIG9mIHlvdW5nIHBlb3BsZSB0byB0ZXN0IGFuZCBjb21tZW50IG9uIHRoZSBQSEUvU0FQSE5BIGFwcCBvbmNlIGl0IGlzIGxhdW5jaGVkLCBhbG9uZ3NpZGUgb3RoZXIgYXBwcyB3aGljaCBhZGRyZXNzIGhlYWx0aHkgZWF0aW5nIGhhYml0cyBhbmQgcGh5c2ljYWwgYWN0aXZpdHksIHRvIGV2YWx1YXRlIHdoZXRoZXIgb25lIHNob3VsZCBiZSByZWNvbW1lbmRlZCBieSB0aGUgVGVhbSB0byBXZXN0IFN1c3NleCBTY2hvb2xzLlxcblxcbjEuIFRoZSBQdWJsaWMgSGVhbHRoIFRlYW0gY29vcmRpbmF0ZSBjb21tdW5pY2F0aW9uIGFuZCBjbG9zZXIgd29ya2luZyB3aXRoIHNjaG9vbHMgdG8gaGVscCBpbmNyZWFzZSBkZW1hbmQgZm9yIHRoZSBhdmFpbGFibGUgQmlrZSBhYmlsaXR5IENvdXJzZXMgYW5kIGxpYWlzZSB3aXRoIG90aGVyIENvdW50eSBDb3VuY2lsIERlcGFydG1lbnRzIG9uIGEgbWV0aG9kIGZvciBldmFsdWF0aW5nIHRoZSBpbnRlcnZlbnRpb24sIHNob3VsZCB0aGUgcmVzb3VyY2VzIGJlY29tZSBhdmFpbGFibGUuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5OSFMgRGlnaXRhbCBwdWJsaXNoZWQgdGhlIG1vc3QgcmVjZW50IHJlbGVhc2Ugb2YgdGhlIE5DTVAgaW4gTm92ZW1iZXIgMjAxNi4gVGhlc2UgcmVzdWx0cyBhcmUgZm9yIHRoZSAyMDE1LzE2IGFjYWRlbWljIHllYXIuXFxuXFxuSW4gV2VzdCBTdXNzZXggMzAuNCUgb2YgeWVhciA2IGNoaWxkcmVuIGFyZSBtZWFzdXJlZCBhcyBvdmVyd2VpZ2h0IG9yIG9iZXNlLiAxLjElIG9mIHRoaXMgYWdlIGdyb3VwIGlzIHVuZGVyd2VpZ2h0LCByZXN1bHRpbmcgaW4gNjguNSUgb2YgY2hpbGRyZW4gYmVpbmcgYSBoZWFsdGh5IHdlaWdodC4gVGhlIHBlcmNlbnRhZ2Ugb2YgY2hpbGRyZW4gd2l0aCBhIGhlYWx0aHkgd2VpZ2h0IGlzIGhpZ2hlciBpbiBXZXN0IFN1c3NleCB0aGFuIEVuZ2xhbmQuIFRoZXJlIGlzIG5vIHNpZ25pZmljYW50IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVzZSBmaWd1cmVzIGFuZCB0aG9zZSBvZiAyMDE0LzE1LlxcblxcblRoaXMgcGxhY2VzIHVzIGF0IGFtYmVyIGNvbXBhcmVkIHRvIHRhcmdldCwgYXQgeWVhciBlbmQsIGFzIHByZWRpY3RlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHllYXIuXFxuXFxuKipGaW5hbCBmaWd1cmVzIGZyb20gdGhlIHNwZWNpYWxpc3Qgc2VydmljZSAoV2VpZ2h0IE1hbmFnZW1lbnQgQ2VudHJlKSBmb3IgMjAxNi8yMDE3IGFyZSBhcyBmb2xsb3dzKipcXG5cXG4qIFR3byBodW5kcmVkIGFuZCBmaWZ0ZWVuIGZhbWlsaWVzIGVucm9sbGVkIG9uIHRoZSBBbGl2ZSBOIEtpY2tpbmcgcHJvZ3JhbW1lIGZvciBjaGlsZHJlbi5cXG5cXG4qIEp1c3Qgb3ZlciA4MCUgY29tcGxldGVkIHRoZSBwcm9ncmFtbWUgYW5kIDQ4JSBtYWludGFpbmVkIG9yIHJlZHVjZWQgdGhlaXIgQk1JLlxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqQ2hhbmdlNExpZmUgQmUgRm9vZCBTbWFydCBDYW1wYWlnbioqXFxuXFxuV2VzdCBTdXNzZXggUHVibGljIEhlYWx0aCBEaXJlY3RvcmF0ZSBzdXBwb3J0cyB0aGUgbmF0aW9uYWwgQ2hhbmdlNExpZmUgY2FtcGFpZ24sIHdoaWNoIGxhdW5jaGVkIEJlIEZvb2QgU21hcnQgaW4gSmFudWFyeS4gVGhpcyBjYW1wYWlnbiBoaWdobGlnaHRzIHRoZSBzdXJwcmlzaW5nIGFtb3VudCBvZiBzdWdhciwgc2F0dXJhdGVkIGZhdCBhbmQgc2FsdCBmb3VuZCBpbiBldmVyeWRheSBmb29kIGFuZCBkcmluay5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipCZSBGb29kIFNtYXJ0IFRlYW0gdmlzaXRlZCBDcmF3bGV5ISoqXFxuXFxuVGhlIFB1YmxpYyBIZWFsdGggRW5nbGFuZCAoUEhFKSBCZSBGb29kIFNtYXJ0IFRlYW0gdmlzaXRlZCBUZXNjbyBFeHRyYSBpbiBIYXplbHdpY2ssIENyYXdsZXkgb24gRnJpZGF5LCAxN3RoIE1hcmNoIDIwMTcgdG8gcmFpc2UgYXdhcmVuZXNzIG9mIHRoZSBCZSBGb29kIFNtYXJ0IGNhbXBhaWduIGFuZCB0byBlbmNvdXJhZ2Ugc2hvcHBlcnMgdG8gZG93bmxvYWQgdGhlIGZyZWUgQmUgRm9vZCBTbWFydCBhcHAsIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBpVHVuZXMgc3RvcmUgb3IgR29vZ2xlIFBsYXkuIFRoZSB0ZWFtIHByb3ZpZGVkIGFkdmljZSB0byBzaG9wcGVycyBhYm91dCB0aGUgYW1vdW50IG9mIHN1Z2FyLCBzYXR1cmF0ZWQgZmF0IGFuZCBzYWx0IGZvdW5kIGluIHBvcHVsYXIgZmFtaWx5IGZvb2RzLCBhbmQgaW4gc29tZSBpbnN0YW5jZXMsIHNob3BwZXJzIGRlY2lkZWQgdG8gZXhjaGFuZ2UgdGhlaXIgcHVyY2hhc2VzIGZvciBoZWFsdGhpZXIgb3B0aW9ucy4gVGhlIHN0YW5kIHdhcyBpbiBhbiBhcmVhIG9mIGhpZ2ggZm9vdGZhbGwgaW4gdGhlIHN0b3JlIGFuZCB0aGUgdGVhbSBoYWQgZ2l2ZW4gb3V0IG92ZXIgODAwIHBhY2tzIGJ5IGx1bmNoIHRpbWUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqSG9yc2hhbSBKdW5pb3IgQ2l0aXplbnMgRXZlbnQqKlxcblxcbk1lbWJlcnMgb2YgdGhlIFB1YmxpYyBIZWFsdGggVGVhbSBhbmQgSG9yc2hhbSBXZWxsYmVpbmcgbGVkIOKAmEJlIEZvb2QgU21hcnTigJkgQ2hhbGxlbmdlLCBhdCB0aGlzIGV2ZW50IHdoaWNoIHRvb2sgcGxhY2UgaW4gZWFybHkgQXByaWwuIFRoZSBhbm51YWwgZXZlbnQgYWltcyB0byB0ZWFjaCBlc3NlbnRpYWwgbGlmZSBza2lsbHMgdG8gb3ZlciAxMjAwIHByaW1hcnkgc2Nob29sIGNoaWxkcmVuIGFnZWQgbmluZSB0byBlbGV2ZW4geWVhcnMgb2xkIHdobyBhdHRlbmQgc2Nob29scyB3aXRoaW4gdGhlIEhvcnNoYW0gZGlzdHJpY3QsIHRocm91Z2ggYSBudW1iZXIgb2YgZnVuIGFuZCB0aG91Z2h0LXByb3Zva2luZyBzY2VuYXJpb3MuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQkI0MDE3NUYtMzk0Mi00RTUwLTg2MkItMDkxODgzNUZDOTdDXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzFCNUE5Q0MzLTI1QzUtNDMzRi1CQzJELTdFQzhEOTc3MzNBNVwifV1dfSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzgyNTgwQzdFLTEyNUItNENEMy1CODNBLTI2OTJEMkRERTA3RFwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0E3MkEyNzBBLTBFQjQtNDMwQi1BQUI2LTg3QUFGQUM3OTQ0N1wifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuTkhTIERpZ2l0YWwgcHVibGlzaGVkIHRoZSBtb3N0IHJlY2VudCByZWxlYXNlIG9mIHRoZSBOQ01QIGluIE5vdmVtYmVyIDIwMTYuIFRoZXNlIHJlc3VsdHMgYXJlIGZvciB0aGUgMjAxNS8xNiBhY2FkZW1pYyB5ZWFyLiBJbiBXZXN0IFN1c3NleCAzMC40JSBvZiB5ZWFyIDYgY2hpbGRyZW4gYXJlIG1lYXN1cmVkIGFzIG92ZXJ3ZWlnaHQgb3Igb2Jlc2UuIDEuMSUgb2YgdGhpcyBhZ2UgZ3JvdXAgaXMgdW5kZXJ3ZWlnaHQsIHJlc3VsdGluZyBpbiA2OC41JSBvZiBjaGlsZHJlbiBiZWluZyBhIGhlYWx0aHkgd2VpZ2h0LiBUaGUgcGVyY2VudGFnZSBvZiBjaGlsZHJlbiB3aXRoIGEgaGVhbHRoeSB3ZWlnaHQgaXMgaGlnaGVyIGluIFdlc3QgU3Vzc2V4IHRoYW4gRW5nbGFuZC4gVGhlcmUgaXMgbm8gc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGZpZ3VyZXMgYW5kIHRob3NlIG9mIDIwMTQvMTUuVGhpcyBwbGFjZXMgdXMgYXQgYW1iZXIgY29tcGFyZWQgdG8gdGFyZ2V0LCBhdCB5ZWFyIGVuZCwgYXMgcHJlZGljdGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgeWVhci4gVGhlIHByZXZhbGVuY2Ugb2Ygb2Jlc2l0eSB3YXMgc2lnbmlmaWNhbnRseSBsb3dlciBpbiBIb3JzaGFtICgxMS43JSkgYW5kIE1pZCBTdXNzZXggKDExLjklKSB0aGFuIGFsbCBvdGhlciBsb2NhbCBhdXRob3JpdGllcyBpbiBXZXN0IFN1c3NleC4gQ3Jhd2xleSBpcyB0aGUgYXJlYSB3aXRoIGdyZWF0ZXN0IG9iZXNpdHkgcHJldmFsZW5jZSBpbiBXZXN0IFN1c3NleCAoMjEuNyUpLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9BRkNEOEQzMS02OTQ4LTQxQUItOTJGMS1DNzc2MUYzOUM3REJcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipGdXJ0aGVyIEluZm9ybWF0aW9uKipcXG5cXG4jIEFsaXZlIE4gS2lja2luZ1xcblxcblRoZSBXZWlnaHQgTWFuYWdlbWVudCBDZW50cmUgaGFzIGNvbnRpbnVlZCB0byBkZWxpdmVyIEFsaXZlIE4gS2lja2luZyB3ZWlnaHQgbWFuYWdlbWVudCBwcm9ncmFtbWUgdG8gY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSB0aHJvdWdob3V0IHRoZSB5ZWFyLiBUbyBkYXRlIDE0MCBmYW1pbGllcyBoYXZlIGVuZ2FnZWQgd2l0aCB0aGUgcHJvZ3JhbW1lLCB3aXRoIGhhbGYgb2YgdGhlbSByZWR1Y2luZyBvciBtYWludGFpbmluZyB0aGVpciB3ZWlnaHQuIFRoZSBtYWpvcml0eSBvZiByZWZlcnJhbHMgaW50byBBbGl2ZSBOIEtpY2tpbmcgY29udGludWUgdG8gY29tZSBmcm9tIHRoZSBzY2hvb2wgcHJvZ3JhbW1lIFNUT1AsIGFuZCBzY2hvb2wgbnVyc2VzLlxcblxcblRlc3RpbW9uaWFsIGZyb20gYSBtb3RoZXIgb2YgYSB5b3VuZyBwZXJzb24gd2hvIGF0dGVuZGVkIEFsaXZlIE4gS2lja2luZ1xcblxcbl9cXFwiU2luY2UgYXR0ZW5kaW5nIHRoZSBBbGl2ZSBuIEtpY2tpbmcgcHJvZ3JhbW1lIEkgaGF2ZSBmb3VuZCB0aGF0IGFzIGEgcGFyZW50IEkgaGF2ZSBub3RpY2VkIGEgaHVnZSBkaWZmZXJlbmNlIGluIG15IGRhdWdodGVycyBwZXJzb25hbGl0eS4gQmVmb3JlIHRoZSBjb3Vyc2Ugc2hlIGhhdGVkIHNjaG9vbCBhbmQgd2FzIGJ1bGxpZWQgZHVlIHRvIHdlaWdodCByZWxhdGVkIGlzc3Vlcy4gU2hlIHNlZW1lZCBzbyB1bmhhcHB5IEkgdG9vayBoZXIgdG8gdGhlIERvY3RvcnMgYmVjYXVzZSBJIHRob3VnaHQgc2hlIG1heSBiZSBkZXByZXNzZWQuIFNpbmNlIHJlZ3VsYXIgZXhlcmNpc2UgYW5kIGxvc2luZyBzb21lIFdlaWdodCB0aGVyZSBoYXMgYmVlbiBhIG1hc3NpdmUgZGlmZmVyZW5jZSBpbiBoZXIgYmVoYXZpb3VyIGF0IHNjaG9vbCBhbmQgYXQgaG9tZS4gSXQgc2VlbXMgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQsIHNoZSBoYXMgbW9yZSBlbnRodXNpYXNtIHRvd2FyZHMgZXhlcmNpc2UsIGVhdGluZyBhbmQgZXZlbiBnb2luZyB0byBzY2hvb2wuIFNoZSB1c2VkIHRvIGxheSBhcm91bmQgYW5kIGRpZG4ndCB3YW50IHRvIGxlYXZlIHRoZSBob3VzZSBub3cgaXQncyBoYXJkIHRvIGtlZXAgaGVyIGluZG9vcnMhIFRoaXMgaGFzIGFsc28gaGFkIGEga25vY2sgYWZmZWN0IGludG8gbXkgbGlmZSBhcyBhIG11bSwgSSBhbSBtdWNoIGhhcHBpZXIuIE15IGRhdWdodGVyIGlzIGhhcHB5IGFmdGVyIHdoYXQgc2VlbXMgbGlrZSBhIGxpZmV0aW1lISBBbG9uZ3NpZGUgc2lkZSBoZWxwaW5nIGhlciBJIGhhdmUgYWxzbyBkb25lIGV4dHJlbWVseSB3ZWxsIGFuZCBsb3NpbmcgNmtncyBpbiA4IHdlZWtzIGFuZCBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgdGhpcyBwcm9ncmFtbWUgdG8gYW55IGtpZHMgc3VmZmVyaW5nIGZyb20gYmVpbmcgb3ZlcndlaWdodCwgc2hlIGhhcyBsb3N0IDJrZy5cXFwiX1xcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIjIEJlIEZvb2QgU21hcnRcXG5cXG5UaGUgUHVibGljIEhlYWx0aCBFbmdsYW5kIChQSEUpIEJFIEZvb2QgU21hcnQgY2FtcGFpZ24gbGF1bmNoZWQgbmF0aW9uYWxseSBvbiAzcmQgSmFudWFyeSAyMDE3LCB3aXRoIHRoZSBuZXdzIHN0b3JpZXMgdGhhdCBjaGlsZHJlbiBhcmUgZWF0aW5nIG1vcmUgdGhhbiBoYWxmIG9mIHRoZWlyIGRhaWx5IHN1Z2FyIGludGFrZSBpbiB0aGVpciBicmVha2Zhc3QuXFxuXFxuW2h0dHA6Ly93d3cuYmJjLmNvLnVrL25ld3MvaGVhbHRoLTM4NDY3ODYxXVswXVxcblxcblRoZSBjYW1wYWlnbiBmZWVkYmFjayBmcm9tIFBIRSBzaG93ZWQgdGhhdCAxMTUgbmV3IHJlZ2lzdHJhdGlvbnMgZnJvbSBXZXN0IFN1c3NleCB3ZXJlIGxvZ2dlZCBvbnRvIHRoZSBDaGFuZ2U0TGlmZSB3ZWJzaXRlIGR1cmluZyB0aGUgY2FtcGFpZ24gcGVyaW9kLiAyNCwwNTEgZW1haWxzIHdlcmUgc2VudCBmcm9tIENoYW5nZTRMaWZlIHRvIFdlc3QgU3Vzc2V4IHJlc2lkZW50cyB3aXRoIGFuIGF2ZXJhZ2UgMTIuOCUgb3BlbiByYXRlLiBGdXJ0aGVyIGNoYW5nZXMgdG8gcHJpbWFyeSBzY2hvb2wgbWVhbHMgcHJvdmlkZWQgYnkgQ2hhcnR3ZWxscyBoYXZlIHJlc3VsdGVkIGluIG1vcmUgc3VnYXIgYmVpbmcgcmVtb3ZlZC5cXG5cXG5bMF06IGh0dHA6Ly93d3cuYmJjLmNvLnVrL25ld3MvaGVhbHRoLTM4NDY3ODYxXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0JFNkZBNDM2LUZBMDAtNDBDNC1CNUVELTEyQTk3ODhFOTQxNVwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlByb21vdGlvbiBvZiB0aGUgUHVibGljIEhlYWx0aCBFbmdsYW5kIFN1Z2FyIFNtYXJ0IGNhbXBhaWduIGhhcyBpbmNyZWFzZWQgdGhlIGF3YXJlbmVzcyBvZiB0aGUgbWVzc2FnZXMgYXJvdW5kIHN1Z2FyIHJlZHVjdGlvbiwgYW5kIGFkdmljZSBvbiBsb3dlciBzdWdhciBzd2Fwcy4gQWRkaXRpb25hbCBzY2hvb2wgYmFzZWQgc3VnYXIgcmVkdWN0aW9uIGRlYmF0ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgQ2hpY2hlc3RlciBEaXN0cmljdC5cXG5cXG5BIHBpbG90IDYgd2VlayB3ZWlnaHQgbWFuYWdlbWVudCBwcm9ncmFtbWUgZm9yIGNoaWxkcmVuIHdpdGggc3BlY2lhbCBlZHVjYXRpb25hbCBuZWVkcyBhbmQgZGlzYWJpbGl0aWVzIGhhcyBydW4gaW4gTWlkIFN1c3NleC4gQXQgdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbW1lIHRoZSBmaXRuZXNzIGxldmVsIG9mIHRoZSB5b3VuZyBwZW9wbGUgaGFkIGluY3JlYXNlZC4gd2VpZ2h0IGhhZCBiZWVuIG1haW50YWluZWQsIGFuZCB0aGV5IHdlcmUgcmVwb3J0aW5nIGNoYW5nZXMgdGhhdCB0aGV5IGhhZCBtYWRlIHRvIHRoZWlyIGZvb2QgaW50YWtlLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzc1MUYzQUUzLUY5QTAtNEE4Qy04OEU3LUM2MTdEQ0YwNkZBOFwifV1dfSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzk0NEMyRkQxLTdDNTctNEYzOS04QzY1LUE1NEU4RTJFQTAxQlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJFZHVjYXRpb25hbCBzZXNzaW9ucyB0byBwcmltYXJ5IGNhcmUgc3RhZmYgZnJvbSBDb2FzdGFsIFdlc3QgU3Vzc2V4IENDRyBoYXZlIGJlZW4gZGVsaXZlcmVkIGJ5IHRoZSBwdWJsaWMgaGVhbHRoIHRlYW0gb24gaWRlbnRpZmljYXRpb24gb2Ygb3ZlcndlaWdodCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlLiBUaGUgdGVhbSBhbHNvIGRlbGl2ZXJlZCBhIHN1Z2FyIHJlZHVjdGlvbiBkaXNwbGF5IGluIHRoZSBtYXJrZXQgcGxhY2UgYXQgdGhlIHNhbWUgZXZlbnQgYXR0ZW5kZWQgYnkgb3ZlciBhIGh1bmRyZWQgcHJvZmVzc2lvbmFscy5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJBIHNjaG9vbCBiYXNlZCBjb21wZXRpdGlvbiB0byBkZXNpZ24gYSBXZXN0IFN1c3NleCBzdWdhciByZWR1Y3Rpb24gbG9nbyB3YXMgd29uIGJ5IGEgcHVwaWwgZnJvbSBTdG9ycmluZ3RvbiBGaXJzdCBTY2hvb2wsIFRoZSB3aW5uaW5nIGRlc2lnbiBpcyBzaG93biBvbiB0aGUgbGVmdC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMTJCMEJBN0EtMTc5MC00QkM3LUExNDMtMzE5M0U4NDY4NDQwXCJ9XV19LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyBBd2FyZHNcXG5cXG5XZXN0IFN1c3NleCBQdWJsaWMgSGVhbHRoIGFuZCBDb3VudHkgQ2F0ZXJpbmcgd29uIGFuIGF3YXJkIGZvciB0aGVpciBwb3N0ZXIgcHJlc2VudGVkIHRoZSBuYXRpb25hbCBQdWJsaWMgSGVhbHRoIEVuZ2xhbmQgQ29uZmVyZW5jZSBpbiBXYXJ3aWNrIGVhcmx5IFNlcHRlbWJlciBmb3IgdGhlaXIgd29yayBvbiByZWR1Y2luZyBzdWdhciBpbiBzY2hvb2wgbWVhbHMuIFRvIGRhdGUgdGhlIGVxdWl2YWxlbnQgd2VpZ2h0IG9mIHRocmVlIExvbmRvbiBkb3VibGUgZGVja2VyIGJ1c2VzIG9mIHN1Z2FyIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBXZXN0IFN1c3NleCBwcmltYXJ5IHNjaG9vbCBtZWFscyBpbiB0aGUgbGFzdCAyMCBtb250aHMuIFRoaXMgd29yayBpcyBjb250aW51aW5nIHdpdGggQ2hhcnR3ZWxscy0gdGhlIHNjaG9vbCBtZWFsIHByb3ZpZGVyLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0REQTcxMUFCLUFCQUMtNDJEQi04QjY2LURDNjdFNjI2MDNCRlwifV1dfSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CRTBENTNDNi1BMEYyLTQwMjYtQTRDMy00REFCNDAxRUQ1Q0RcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyBXaHkgV2VpZ2h0XFxuXFxuQmVpbmcgb3ZlcndlaWdodCBhcyBhIGNoaWxkIGluY3JlYXNlcyB0aGUgcmlzayBvZiBiZWluZyBvdmVyd2VpZ2h0IGFzIGFuIGFkdWx0LiBJdCBhbHNvIGNhbiBhZmZlY3QgYSBjaGlsZOKAmXMgaGVhbHRoLCBhYmlsaXR5IHRvIHRha2UgcGFydCBpbiBhbiBsaXZlbHkgbGlmZSBhbmQgc2Nob29sIHBlcmZvcm1hbmNlLiBUbyBoZWxwIGNoaWxkcmVuIGFuZCBmYW1pbGllcyB0aGluayBhYm91dCB0aGVpciBkaWV0IGFuZCBiZWluZyBhY3RpdmUgdGhlcmUgaXMgaGVscCBhbmQgc3VwcG9ydCBhdmFpbGFibGUgaW4gV2VzdCBTdXNzZXguIFRyaWVkIGFuZCB0ZXN0ZWQgcHJvZ3JhbW1lcyB3aGljaCBwcm92aWRlIGFuIGVmZmVjdGl2ZSB3YXkgdG8gbWFuYWdlIHdlaWdodCBhbmQgZW5jb3VyYWdlIGFkb3B0aW5nIGhlYWx0aGllciBoYWJpdHMgZm9yIGxpZmUgYXJlIGZ1bmRlZCBieSBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbC5cXG5cXG4gXFxuXFxuRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gY2FsbCB0aGUgV2h5V2VpZ2h0IGhlbHBsaW5lIG9uIDAzMDAgMTIzIDA4OTIuXFxuXFxuW3d3dy53aHl3ZWlnaHR3ZXN0c3Vzc2V4LmNvLnVrXVswXVxcblxcblswXTogaHR0cDovL3d3dy53aHl3ZWlnaHR3ZXN0c3Vzc2V4LmNvLnVrXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHdpdGggaGVhbHRoeSB3ZWlnaHQgaW4gdGhlaXIgbGFzdCB5ZWFyIG9mIHByaW1hcnkgc2Nob29sXCIsXCJpY29uXCI6XCJjcm9zc2hhaXJcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgQ2hpbGRyZW4ncyBIZWFsdGh5IFdlaWdodCBpbiBwZXJjZW50YWdlLlwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDEzLTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXQiOjcwLjQsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjcwLjQsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiNGZhZi0ybnAzIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTN9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTZ9fSxcInN0YXJ0XCI6XCIyMDE1LTA0LTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE2LTAzLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dLFxcXCJ2YWx1ZVR5cGVcXFwiOlxcXCJvbmVcXFwifX1cIixcImRhdGFzZXRcIjpcInFxbnotZjI5aFwiLFwiY29tcHV0ZVwiOntcImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uXCI6XCJhdmVyYWdlXCJ9LFwiY29sdW1uMVwiOlwiYWN0dWFsXCIsXCJkYXRlX2NvbHVtblwiOlwiZGF0ZVwiLFwiZGF0YXNldF9kb21haW5cIjpcInBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrXCJ9LFwidHlwZVwiOlwic2NyYXRjaFwifSxcIm5hbWVcIjpcIkNoaWxkcmVuJ3MgSGVhbHRoeSBXZWlnaHRcIixcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOnRydWUsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiZ29vZFwiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjpmYWxzZSxcIm1pblwiOjY1LFwibWF4XCI6NzV9fSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0wM1QxMDozMjo0OC45MzNaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MTU6MzMuOTIzWiIsInZlcnNpb24iOiIyMDE4LTA0LTAzVDEwOjMyOjQ4LjkzM1oiLCJ0YXJnZXRfdG9sZXJhbmNlIjoxLCJpZCI6Imt6MmItODIyNiJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMFQxNDoyMDo1Ni45NjJaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MTU6MzMuOTk5WiIsInZlcnNpb24iOiIyMDE4LTA0LTEwVDE0OjIwOjU2Ljk2MloiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6IjdnNjQtcml3cSIsIm5hbWUiOiJGYW1pbGllcyB0dXJuZWQgYXJvdW5kIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhpcyBtZWFzdXJlIHJlcG9ydHMgb24gV1NDQ+KAmXMgYWJpbGl0eSB0byBkZWxpdmVyIHRhcmdldHMgbGFpZCBkb3duIGJ5IHRoZSBEQ0xHIChEZXBhcnRtZW50IGZvciBDb21tdW5pdGllcyBhbmQgTG9jYWwgR292ZXJubWVudCkgYXMgcGFydCBvZiB0aGUgbmF0aW9uYWwgVHJvdWJsZWQgRmFtaWxpZXMgcHJvZ3JhbW1lIHRvIDIwMjAuIFRoZXNlIHJlbGF0ZSB0byDigJh0dXJuaW5nIGFyb3VuZOKAmSBmYW1pbGllcyBhZ2FpbnN0IG5hdGlvbmFsIHZ1bG5lcmFiaWxpdHkgY3JpdGVyaWEsIHdoZXJlIHRoZXkgaGF2ZSBhdCBsZWFzdCB0d28gb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJpc3RpY3M6XFxuXFxuKiBDaGlsZHJlbiB3aG8gaGF2ZSBub3QgYmVlbiBhdHRlbmRpbmcgc2Nob29sIHJlZ3VsYXJseTtcXG4qIFBhcmVudHMgYW5kIGNoaWxkcmVuIGludm9sdmVkIGluIGNyaW1lIGFuZCBhbnRpLXNvY2lhbCBiZWhhdmlvdXI7XFxuKiBEb21lc3RpYyB2aW9sZW5jZSBhbmQgYWJ1c2U7XFxuKiBDaGlsZHJlbiB3aG8gbmVlZCBoZWxwO1xcbiogUGFyZW50cyBhbmQgY2hpbGRyZW4gd2l0aCBhIHJhbmdlIG9mIGhlYWx0aCBwcm9ibGVtcztcXG4qIEFkdWx0cyBvdXQgb2Ygd29yayBvciBhdCByaXNrIG9mIGZpbmFuY2lhbCBleGNsdXNpb247XFxuKiBZb3VuZyBwZW9wbGUgYXQgcmlzayBvZiB3b3JrbGVzc25lc3NcXG5cXG5TdWNoIGZhbWlsaWVzIG9mdGVuIGhhdmUgdmVyeSBsb25nLXN0YW5kaW5nIGlzc3VlcywgYW5kIHJlcHJlc2VudCBhIGhpZ2ggY29zdCB0byBhIHJhbmdlIG9mIHB1YmxpYyBzZXJ2aWNlcy4gSW50ZXJ2ZW50aW9uIGlzIHRocm91Z2ggYW4gaW50ZW5zaXZlIGtleXdvcmtlciBzZXJ2aWNlLCBvciBhbHRlcm5hdGl2ZWx5IHRocm91Z2ggYSByYW5nZSBvZiBwYXJ0bmVycyBvZmZlcmluZyBlYXJseSBoZWxwIGludGVydmVudGlvbnMuIEl0IHdpbGwgb2Z0ZW4gdGFrZSBhcm91bmQgMTIgbW9udGhzIGJlZm9yZSDigJhzdWNjZXNz4oCZIGNhbiBiZSByZXBvcnRlZDogdGhlIGludGVudGlvbiBpcyB0byBwcm92aWRlIHNpZ25pZmljYW50IG91dGNvbWVzIHdoaWNoIGEgZmFtaWx5IGNhbiBzdXN0YWluIGludG8gdGhlIGZ1dHVyZS4gVGhlcmUgaXMgYW4gYWNjb21wYW55aW5nIG1ldGhvZG9sb2d5IHdoaWNoIG1lYXN1cmVzIGhvdyBmYXIgdGhlIGZhbWlseSBoYXMgdHJhdmVsbGVkIHRvd2FyZHMgc3VzdGFpbmFiaWxpdHksIHRvIGFsbG93IGF1ZGl0IGFuZCBldmFsdWF0aW9uIG9mIHRoZSByZXN1bHRzLiBXb3JrIHdpdGggZmFtaWxpZXMgaXMgcGFydC1mdW5kZWQgYnkgdGhlIERDTEcsIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIERXUCAoRGVwYXJ0bWVudCBvZiBXb3JrIGFuZCBQZW5zaW9ucykuIEEgcmFuZ2Ugb2YgV1NDQyBhbmQgY29tbWlzc2lvbmVkIHByaXZhdGUgYW5kIHRoaXJkIHNlY3RvciBzZXJ2aWNlcyBqb2ludGx5IGNvbnRyaWJ1dGUgdG8gdGhlc2Ugb3V0Y29tZXMsIGZhY2lsaXRhdGVkIGJ5IHRoZSBDb3VudHkgQ291bmNpbC4gVGhlIFRoaW5rIEZhbWlseSBQYXJ0bmVyc2hpcCBpbmNsdWRlcyBEaXN0cmljdCBDb3VuY2lscywgU3Vzc2V4IFBvbGljZSwgSGVhbHRoLCBIb3VzaW5nLCBTY2hvb2xzLCBDaGlsZHJlbuKAmXMgU29jaWFsIENhcmUgYW5kIGEgd2lkZSByYW5nZSBvZiBjaGFyaXRpZXMuXFxuXFxuKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblVwIHRvIDMxc3QgRGVjZW1iZXIgMjAxNyB0aGUgYXV0aG9yaXR5IGhhcyBjbGFpbWVkIGEgdG90YWwgb2YgMSw3NDEgc3VjY2Vzc2VzLiBBIGZ1cnRoZXIgODggY2FzZXMgd2lsbCBiZSBjbGFpbWVkIGluIEphbnVhcnkgMjAxOCwgZ2l2aW5nIGEgdG90YWwgb2YgMSw4MjkuIEEgc3Ryb25nIHBsYW4gaXMgaW4gcGxhY2UgdG8gYWNoaWV2ZSBvdXIgb3ZlcmFsbCBNYXJjaCAyMDIwIHRhcmdldCBvZiAzLDk0MCBmYW1pbGllcyB0dXJuZWQgYXJvdW5kIGFnYWluc3QgbmF0aW9uYWwgY3JpdGVyaWEsIGFsdGhvdWdoIHNvbWUgdmFyaWFiaWxpdHkgaW4gaW5kaXZpZHVhbCBxdWFydGVycyBpcyB0byBiZSBleHBlY3RlZCBhY3Jvc3MgYSBmaXZlLXllYXIgcHJvZ3JhbW1lLiBJbiB0aGUgbWVhbnRpbWUsIHdlIGhhdmUgbWFkZSA2LDM5NCBhdHRhY2htZW50cyBvZiBxdWFsaWZ5aW5nIGZhbWlsaWVzIOKAkyBpLmUuIHRob3NlIHdlIGhhdmUgYWN0aXZlbHkgd29ya2VkIHdpdGggb3IgYXJlIGN1cnJlbnRseSB3b3JraW5nIHdpdGggc2luY2UgU2VwdGVtYmVyIDIwMTQuIFRoaXMgc3VnZ2VzdHMgdGhhdCB0aGUgbmVlZCBmb3IgcHJldmVudGF0aXZlLCBlYXJseSBpbnRlcnZlbnRpb24gc2VydmljZXMgcmVtYWlucyBoaWdoLiBXZXN0IFN1c3NleCBpcyByZWdhcmRlZCBhcyBhIGxlYWRpbmcgYXV0aG9yaXR5IGluIHRoZSBsb2NhbCBkZWxpdmVyeSBvZiB0aGUgZ292ZXJubWVudOKAmXMgYW1iaXRpb25zIGZvciBmYW1pbGllcyB0aHJvdWdoIHRoZSBuYXRpb25hbCBwcm9ncmFtbWUsIGFuZCB0aGVzZSBmaWd1cmVzIGFyZSBpbiBsaW5lIHdpdGggY3VycmVudCBhbmQgcHJvamVjdGVkIHN1Y2Nlc3MgdGFyZ2V0cy5cXG5cXG4qKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblVwIHRvIDMwdGggU2VwdGVtYmVyIDIwMTcgdGhlIGF1dGhvcml0eSBoYXMgY2xhaW1lZCBhIHRvdGFsIG9mIDEsNTExIHN1Y2Nlc3Nlcy4gQSBmdXJ0aGVyIDIzMCBjYXNlcyBoYXZlIGJlZW4gcHJlc2VudGVkIHRvIHRoZSBEQ0xHIGF0IHRoZSBiZWdpbm5pbmcgb2YgT2N0b2JlciAyMDE3IGFuZCBhcmUgdW5kZXJnb2luZyB0aGUgYXVkaXQgcHJvY2VzcyB3aXRoaW4gRENMRy4gVGhlc2UgZmlndXJlcyBhcmUgaW4gbGluZSB3aXRoIGN1cnJlbnQgc3VjY2VzcyB0YXJnZXRzLlxcblxcbkluIHRoZSBtZWFudGltZSwgd2UgaGF2ZSBtYWRlIDUsODA5IGF0dGFjaG1lbnRzIG9mIHF1YWxpZnlpbmcgZmFtaWxpZXMg4oCTIGkuZS4gdGhvc2Ugd2UgaGF2ZSBhY3RpdmVseSB3b3JrZWQgd2l0aCBvciBhcmUgY3VycmVudGx5IHdvcmtpbmcgd2l0aCBpbiBQaGFzZSAyIHNpbmNlIFNlcHRlbWJlciAyMDE0LiBUaGUgbnVtYmVyIG9mIGFjdGl2ZSBhdHRhY2hlZCBjYXNlcyBjdXJyZW50bHkgYmVpbmcgd29ya2VkIG9uIGJ5IFdlc3QgU3Vzc2V4IGlzIDIsMjcwLlxcblxcbioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblVwIHRvIDMwdGggSnVuZSAyMDE3IHRoZSBhdXRob3JpdHkgaGFzIGNsYWltZWQgYSB0b3RhbCBvZiAxLDI4MSBzdWNjZXNzZXMuIEEgZnVydGhlciBjbGFpbSBpcyBjdXJyZW50bHkgYmVpbmcgcHJlcGFyZWQgZm9yIGFuIGFkZGl0aW9uYWwgMjMwIGNhc2VzIHdoaWNoIHdpbGwgYmUgcHJlc2VudGVkIHRvIHRoZSBEQ0xHIGF0IHRoZSBlbmQgb2YgSnVseSAyMDE3LiBUaGVzZSBmaWd1cmVzIGFyZSBpbiBsaW5lIHdpdGggY3VycmVudCBzdWNjZXNzIHRhcmdldHMuIEluIHRoZSBtZWFudGltZSwgd2UgaGF2ZSBtYWRlIDUsMzQwIGF0dGFjaG1lbnRzIG9mIHF1YWxpZnlpbmcgZmFtaWxpZXMg4oCTIGkuZS4gdGhvc2Ugd2UgaGF2ZSBhY3RpdmVseSB3b3JrZWQgd2l0aCBvciBhcmUgY3VycmVudGx5IHdvcmtpbmcgd2l0aCBpbiBQaGFzZSAyIHNpbmNlIFNlcHRlbWJlciAyMDE0LiBUaGUgbnVtYmVyIG9mIGFjdGl2ZSBjYXNlcyBjdXJyZW50bHkgYmVpbmcgd29ya2VkIG9uIGJ5IFdlc3QgU3Vzc2V4IGlzIDIsMTkzLlxcblxcbioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgVGhpbmsgRmFtaWx5IHByb2dyYW1tZSBoYXMgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzZWNvbmQgZnVsbCB5ZWFyIG9mIFBoYXNlIDIsIHdoaWNoIGxhc3RzIHVudGlsIE1hcmNoIDIwMjAuIFVwIHRvIDMxc3QgTWFyY2ggMjAxNyB0aGUgYXV0aG9yaXR5IGhhcyBjbGFpbWVkIGEgdG90YWwgb2YgMSwyODEgd2hpY2ggaXMgaW4gbGluZSB3aXRoIHRoZSB0YXJnZXQuIEluIHRoZSBtZWFudGltZSwgd2UgaGF2ZSBtYWRlIDQsNzYwIGF0dGFjaG1lbnRzIG9mIHF1YWxpZnlpbmcgZmFtaWxpZXMg4oCTIGkuZS4gdGhvc2Ugd2UgaGF2ZSBhY3RpdmVseSB3b3JrZWQgd2l0aCBvciBhcmUgY3VycmVudGx5IHdvcmtpbmcgd2l0aCBpbiBQaGFzZSAyIHNpbmNlIFNlcHRlbWJlciAyMDE0IHdoaWNoIGlzIHdlbGwgYWJvdmUgdGFyZ2V0LiBUaGUgbnVtYmVyIG9mIGFjdGl2ZSBjYXNlcyBjdXJyZW50bHkgYmVpbmcgd29ya2VkIG9uIGJ5IFdlc3QgU3Vzc2V4IGlzIDIsMTEzLiBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB0aGUgRENMRyBwaGFzZSAyIChTZXAgMjAxNCDigJNNYXIgMjAyMCkgdGFyZ2V0IGhhcyByZWR1Y2VkIGZyb20gNCwwNjAgdG8gMyw5NDAuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGZhbWlsaWVzIHdlIGhhdmUgaGVscGVkIHRvIGNoYW5nZSwgaW1wcm92ZSBhbmQgdHVybiB0aGVpciBsaXZlcyBhcm91bmRcIixcImljb25cIjpcInRleHRcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdGhlIG51bWJlciBvZiB0cm91YmxlZCBmYW1pbGllcyB0dXJuZWQgYXJvdW5kLlwiLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzL0Y2NjhGNDAwLTQyRDItNEYzMC1CRDVFLTJCNTA0OTRFMUI3RVwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE1LTAzLTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6ImZhbWlsaWVzIiwidGFyZ2V0IjozOTQwLCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6InRkenAtems5NSJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9fSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSBudW1iZXIgb2YgZmFtaWxpZXMgdHVybmVkIGFyb3VuZFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJnb29kXCIsXCJ5U2NhbGVcIjp7XCJ1c2VfZGVmYXVsdFwiOmZhbHNlfSxcImlzX3RyZW5kbGluZV9kaXNhYmxlZFwiOmZhbHNlfSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMVQxNzowMTowNi4wNjFaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MjI6MTUuMDg3WiIsInZlcnNpb24iOiIyMDE4LTA0LTExVDE3OjAxOjA2LjA2MVoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoyMDAsImlkIjoiODJmNC0ya2ppIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTExVDE3OjAxOjE4LjUzN1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDoyMjoxNS4xNDhaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTFUMTc6MDE6MTguNTM3WiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiMndoOC05dmY4IiwibmFtZSI6IkNoaWxkcmVuIExvb2tlZCBBZnRlciBQb3B1bGF0aW9uIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJ0ZXh0XCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiV2VzdCBTdXNzZXggQWRvcHRpb24gaXMgd29ya2luZyBpbiBwYXJ0bmVyc2hpcCB3aXRoIEJyaWdodG9uIGFuZCBIb3ZlLCBFYXN0IFN1c3NleCBhbmQgU3VycmV5IExvY2FsIEF1dGhvcml0eSBBZG9wdGlvbiBBZ2VuY2llcyB0byBkZXZlbG9wIEFkb3B0aW9uIFNvdXRoIEVhc3QuIFRoZSBhaW0gb2YgdGhpcyByZWdpb25hbCBwYXJ0bmVyc2hpcCBpcyB0byBzaGFyZSByZXNvdXJjZXMgYW5kIGV4cGVydGlzZSBzbyB0aGF0IDgwJSBvZiBBZG9wdGlvbiBTb3V0aCBFYXN0IGNoaWxkcmVuIGFyZSBwbGFjZWQgd2l0aGluIHRoZSByZWdpb24sIHdpdGggaW5jcmVhc2VkIGNob2ljZSBvZiBhZG9wdGVycywgcmVkdWNlZCB3YWl0aW5nIHRpbWVzIGFuZCBtb3JlIHN1Y2Nlc3NmdWwgYWRvcHRpb25zLlxcblxcbiBcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipGZWJydWFyeSAyMDE4KipcXG5cXG4tIC0gLVxcblxcblRoaXMgaW5kaWNhdG9yIGhhcyBpbmNyZWFzZWQgYnkgNiBkYXlzIG92ZXIgdGhlIHBhc3QgbW9udGggZHVlIHRvIGEgc21hbGwgbnVtYmVyIG9mIGNoaWxkcmVuIHdpdGggc2lnbmlmaWNhbnQgbmVlZHMgd2hvIGhhZCBzcGVudCBhIGNvbnNpZGVyYWJsZSB0aW1lIGluIGZvc3RlciBjYXJlIGFuZCB0aGVuIHdpdGggdGhlaXIgYWRvcHRlcnMgcHJpb3IgdG8gYWRvcHRpb24gb3JkZXJzIGJlaW5nIGdyYW50ZWQuIEZ1cnRoZXIgZGV0YWlsIHdpbGwgZm9sbG93IGluIHRoZSBxdWFydGVybHkgdXBkYXRlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIGF2ZXJhZ2UgdGltZSBiZXR3ZWVuIGEgY2hpbGQgZW50ZXJpbmcgY2FyZSBhbmQgbW92aW5nIGluIHdpdGggdGhlaXIgYWRvcHRpdmUgZmFtaWx5IGhhcyBpbmNyZWFzZWQgaW4gdGhlIGxhc3QgcXVhcnRlciB0byA0ODMuMyBkYXlzLiBUaGlzIGluY3JlYXNlZCB0aW1lc2NhbGUgY2FuIGJlIGF0dHJpYnV0ZWQgdG8gdHdvIGNoaWxkcmVuIHdpdGggYWRvcHRpb24gY2FyZSBwbGFucyB3aG8gd2VyZSBhZG9wdGVkIGluIFF1YXJ0ZXIgMzogQ2hpbGQgMSBpcyBhIGNoaWxkIHdpdGggc3BlY2lhbCBuZWVkcyB3aG8gd2FzIHBsYWNlZCBmb3IgYWRvcHRpb24gb3V0IG9mIGNvdW50eSBhZnRlciBhIGxvbmcgc2VhcmNoOyBoZXIgcHJvc3BlY3RpdmUgYWRvcHRlcnMgdGhlbiBzZXBhcmF0ZWQgd2hpY2ggbGVkIHRvIGRlbGlua2luZywgdGhlbiBhcmUgYXNzZXNzbWVudCBvZiBhZG9wdGl2ZSBtb3RoZXIgYXMgYSBzaW5nbGUgYWRvcHRlciB0b29rIHBsYWNlIHByaW9yIHRvIGFuIEFkb3B0aW9uIE9yZGVyIGJlaW5nIGdyYW50ZWQuIENoaWxkIDIgZXhwZXJpZW5jZWQgZGVsYXlzIGluIGJlaW5nIHBsYWNlZCBmb3IgYWRvcHRpb24gZHVlIHRvIGhpcyBhZGRpdGlvbmFsIG5lZWRzLiBIZSBoYWQgYmVlbiBsb29rZWQgYWZ0ZXIgZm9yIDIgeWVhcnMgYmVmb3JlIGEgUGxhY2VtZW50IE9yZGVyIHdhcyBncmFudGVkLiBIZSB3YXMgb2xkZXIgd2hlbiBoZSB3YXMgcGxhY2VkIGZvciBhZG9wdGlvbjsgdGhlcmUgd2VyZSBjb25jZXJucyBhcm91bmQgcHJlc2VudGluZyBiZWhhdmlvdXJzIGluZGljYXRpbmcgZWFybHkgdHJhdW1hIGFuZCBhIDQgeWVhciBnYXAgYmV0d2VlbiBwbGFjZW1lbnQgYW5kIGFkb3B0aW9uIGJlY2F1c2Ugb2YgdGhlc2UgbmVlZHMuXFxuXFxuIFxcblxcblRoZXJlIGFyZSBjdXJyZW50bHkgMzUgY2hpbGRyZW4gaW4gYWRvcHRpdmUgcGxhY2VtZW50cyBwcmUgQWRvcHRpb24gT3JkZXIuIEJhc2VkIG9uIHRoZSBsaWtlbGlob29kIG9mIEFkb3B0aW9uIE9yZGVycyBmb3IgMTUgb2YgdGhlc2UgY2hpbGRyZW4gYmVpbmcgZ3JhbnRlZCB3aXRoaW4gdGhlIG5leHQgcXVhcnRlciwgdGhlIHByZWRpY3Rpb24gaXMgdGhhdCB0aGlzIG1lYXN1cmUgd2lsbCBkZWNyZWFzZSB0byBhcm91bmQgNDY1IGRheXMgYnkgdGhlIGVuZCBvZiB0aGUgeWVhciB3aGljaCB3aWxsIG1ha2UgdGhlIHllYXIgZW5kIHByZWRpY3Rpb24gQW1iZXIuVGhpcyB3aWxsIGltcHJvdmUgcHJvZ3Jlc3MgdG93YXJkcyB0aGUgdGFyZ2V0IG9mIDQyNiBkYXlzIGJ5IHRoZSBlbmQgb2YgTWFyY2ggMjAxOS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGVyZSBpcyBhICoqNDYxLjczKiogZGF5cyBhdmVyYWdlIGZvciB0aGUgY2hpbGRyZW4gb24gUGxhY2VtZW50IE9yZGVycyBmcm9tIGVudGVyaW5nIGNhcmUgdG8gYmVpbmcgcGxhY2VkIGZvciBhZG9wdGlvbjsgdGhpcyBldmlkZW5jZXMgdGhhdCBXZXN0IFN1c3NleCBpcyBwbGFjaW5nIGNoaWxkcmVuIGluIGEgdGltZWx5IG1hbm5lcjsgdGhlIHBlcmZvcm1hbmNlIGFnYWluc3QgdGhpcyBpbmRpY2F0b3IgaW4gdGhlIHByZXZpb3VzIHF1YXJ0ZXIgd2FzIDQ2Ni43IGRheXMsIGFuZCByZW1haW5zIGxvd2VyIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2Ugd2hpY2ggaXMgNTMyIGRheXMuIFRoZSBhZG9wdGlvbiB0ZWFtIGNvbnRpbnVlcyB0byBwcmlvcml0aXNlIGxpbmtpbmcgY2hpbGRyZW4gd2l0aCBhZG9wdGVycyBpbiBhIHRpbWVseSBtYW5uZXIsIGFuZCBoYXZlIHJlc3BvbmRlZCBmbGV4aWJseSB0byB0aGUgaW5jcmVhc2VkIGRlbWFuZCBmb3IgZmFtaWx5IGZpbmRpbmcgZHVlIHRvIHRoZSBjb250aW51ZWQgaW5jcmVhc2UgaW4gUGxhY2VtZW50IG9yZGVycyBmb3IgV2VzdCBTdXNzZXggY2hpbGRyZW4uIFRoZSBMb2NhbCBBdXRob3JpdHkgZmFjZXMgYSBzaWduaWZpY2FudCBhZG9wdGVyIHN1ZmZpY2llbmN5IGNoYWxsZW5nZSwgZHVlIHRvIHRoaXMgaW5jcmVhc2UuIFRoZSBkZW1hbmQgZm9yIGFkb3B0aXZlIHBsYWNlbWVudHMgZm9yIGNoaWxkcmVuIHdobyBhcmUgaW4gc2libGluZyBncm91cHMsIG92ZXIgMiB5ZWFycyBvZiBhZ2UsIGZyb20gZGl2ZXJzZSBldGhuaWMgYmFja2dyb3VuZHMgYW5kIGEgbnVtYmVyIHdpdGggc3BlY2lhbCBuZWVkcywgaXMgdW5hYmxlIHRvIGJlIHNhdGlzZmFjdG9yaWx5IG1ldCBmcm9tIHRoZSBMb2NhbCBBdXRob3JpdHnigJlzIGV4aXN0aW5nIHBvb2wgb2YgYWRvcHRlcnMuXFxuXFxuVGhlIEFkb3B0aW9uIFRlYW0gaGFzIGRldmVsb3BlZCBjbGVhciBwcm9jZXNzZXMgYW5kIHRpbWUgZnJhbWVzIHRvIGVuc3VyZSB0aGF0IHJlY3J1aXRtZW50IGFuZCBhc3Nlc3NtZW50IGlzIHByaW9yaXRpc2VkLiBUaGVyZSBpcyBhIG5ldyBEdXR5IFdvcmtlciBhcyB0aGUgZmlyc3QgcG9pbnQgb2YgY29udGFjdCBmb3IgZW5xdWlyZXJzIGluIG9yZGVyIHRvIHByb3ZpZGUgYSB0aW1lbHkgYW5kIGNvbnNpc3RlbnQgcmVzcG9uc2UuIFRoZSBjb2xsYWJvcmF0aW9uIG9mIHRoZSBBZG9wdGlvbiB0ZWFtIGFzIHBhcnQgb2YgdGhlIGRldmVsb3BpbmcgcmVnaW9uYWwgQWRvcHRpb24gQWdlbmN5LCBBZG9wdGlvbiBTb3V0aCBFYXN0IChBU0UpLCBlbnN1cmVzIHRoYXQgYXBwbGljYW50cyBoYXZlIGFjY2VzcyB0byBpbmZvcm1hdGlvbiBldmVuaW5ncyBhdCBhIHRpbWUgYW5kIGxvY2F0aW9uIGNvbnZlbmllbnQgdG8gdGhlbS4gQVNFIHdvcmtzIHRvZ2V0aGVyIHRvIGlkZW50aWZ5IGxvY2FsIGZhbWlsaWVzIGZvciB0aGVpciBjaGlsZHJlbiB0byBwcmV2ZW50IHBsYWNlbWVudHMgYmVpbmcgdG9vIGZhciBhZmllbGQuIFRoZSBuZXh0IEFTRSBBZG9wdGlvbiBFeGNoYW5nZSBpcyBiZWluZyBoZWxkIG9uIDE2dGggT2N0b2JlciAyMDE3IGF0IHRoZSBzdGFydCBvZiBOYXRpb25hbCBBZG9wdGlvbiBXZWVrLiBUaGUgcHJlc2VuY2Ugb2YgdGhlIExvY2FsIEF1dGhvcml0eeKAmXMgQWRvcHRpb24gU2VydmljZSBhbmQgdGhlIG5lZWQgZm9yIGFkb3B0ZXJzIGlzIGJlaW5nIHByb21vdGVkIHRocm91Z2ggYSB2YXJpZXR5IG9mIG1lZGlhIGFuZCBldmVudHMuIFBsYW5uaW5nIGlzIGFsc28gdW5kZXJ3YXkgdG8gZGV2ZWxvcCBhbiBBZG9wdGlvbiBTb3V0aCBFYXN0IHdlYnNpdGUsIGFzIHJlc2VhcmNoIHBhcGVyIGV2aWRlbmNlZCB0aGF0IHRoZSBtYWpvcml0eSBvZiBwZW9wbGUgaW50ZXJlc3RlZCBpbiBhZG9wdGlvbiBtYWRlIHRoZWlyIGZpcnN0IHN0ZXBzIHRocm91Z2ggb25saW5lIGFjdGl2aXR5LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGVyZSBpcyBhIDQwOSBkYXlzIGF2ZXJhZ2UgZm9yIHRoZSA3IGNoaWxkcmVuIGFkb3B0ZWQgaW4gdGhlIGZpcnN0IHF1YXJ0ZXIgb2YgMjAxNyBmcm9tIGVudGVyaW5nIGNhcmUgdG8gYmVpbmcgcGxhY2VkIGZvciBhZG9wdGlvbiwgZXZpZGVuY2luZyB0aGF0IHdlIGFyZSBwbGFjaW5nIGNoaWxkcmVuIGluIGEgdGltZWx5IG1hbm5lci4gVGhlcmUgYXJlIGhpc3RvcmljIGNoaWxkcmVuIGZyb20gdGhlIHBhc3QgdGhyZWUgeWVhcnMgd2hvc2UgdGltZXNjYWxlcyBmcm9tIGVudGVyaW5nIGNhcmUgdG8gYmVpbmcgcGxhY2VkIGZvciBhZG9wdGlvbiBoYXZlIGJlZW4gc2lnbmlmaWNhbnRseSBsb25nZXIgdGhhbiB3ZSB3b3VsZCBsaWtlLCBidXQgZ2l2ZW4gdGhlaXIgc3BlY2lmaWMgbmVlZHMsdGhlc2UgcGxhbnMgaGF2ZSBiZWVuIGluIHRoZWlyIGJlc3QgaW50ZXJlc3RzLlxcblxcblRoZSBtYWluIHByaW9yaXR5IGZvciB0aGUgQWRvcHRpb24gU2VydmljZSBjdXJyZW50bHkgaXMgaW4gcmVjcnVpdGluZyBhIGxhcmdlciBwb29sIG9mIGFkb3B0ZXJzIHRvIG1lZXQgdGhlIG5lZWRzIG9mIHRoZSBpbmNyZWFzZWQgbnVtYmVyIG9mIGNoaWxkcmVuIHdpdGggYWRvcHRpb24gY2FyZSBwbGFucy4gVGhlcmUgaGFzIGJlZW4gaW5jcmVhc2VkIG1hcmtldGluZyBhY3Rpdml0eSBhbmQgdGhlcmUgaXMgbW9yZSBjYXBhY2l0eSBpbiBTdGFnZSAxIEFkb3B0aW9uIHRvIHJlc3BvbmQgdG8gZW5xdWlyZXJzIGluIGEgdGltZWx5IG1hbm5lci4gQWxvbmdzaWRlIHRoaXMsIGNhcGFjaXR5IHdpdGhpbiB0aGUgQWRvcHRpb24gdGVhbSBpcyBiZWluZyByZXZpZXdlZCB0byBlbnN1cmUgdGhhdCB3ZSBhcmUgYWJsZSB0byBwcm9ncmVzcyBhcHBsaWNhdGlvbnMgZXhwZWRpZW50bHkuXFxuXFxuVGhlIEFkb3B0aW9uIFBhcnRuZXJzaGlwIGlzIGFscmVhZHkgc2hhcmluZyBpbmZvcm1hdGlvbiBldmVudHMgYW5kIHByZXBhcmF0aW9uIGdyb3VwcywgYW5kIHRoZSBmaXJzdCBBZG9wdGlvbiBFeGNoYW5nZSBldmVudCBoYXMgdGFrZW4gcGxhY2UsIHdpdGggdGhlIHBsYW4gdG8gaG9sZCB0aGVzZSBldmVudHMgMyB0aW1lcyBhIHllYXIuXFxuXFxuICBcXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkluIHRoZSB5ZWFyIDIwMTYtMjAxNyAsIFdlc3QgU3Vzc2V4IGhhcyBhY2hpZXZlZCBhZG9wdGlvbiBmb3IgNDggY2hpbGRyZW4gYWdhaW5zdCBpdHMgdGFyZ2V0IG9mIDQwIGNoaWxkcmVuLCB3aGljaCBpcyBhIHNpZ25pZmljYW50IGluY3JlYXNlIG9uIHRoZSBwcmV2aW91cyB5ZWFy4oCZcyB0b3RhbCBvZiAzMyBhZG9wdGVkIGNoaWxkcmVuLiAxMyBvZiB0aGUgY2hpbGRyZW4gYWRvcHRlZCBvdmVyIHRoZSBwYXN0IHllYXIgaGFkIGJlZW4gcGxhY2VkIGZvciBhZG9wdGlvbiBmb3IgdXAgdG8gMTggbW9udGhzIHByaW9yIHRvIEFkb3B0aW9uIE9yZGVycyBiZWluZyBncmFudGVkLCByZWFzb25zIGZvciB3aGljaCBpbmNsdWRlZCBjaGlsZHJlbiB3aXRoIGNvbXBsZXggbmVlZHMsIG9sZGVyIGNoaWxkcmVuIGFuZCBjaGlsZHJlbiB3aXRoIGRpc2FiaWxpdGllcyBiZWluZyBhZG9wdGVkIGJ5IHRoZWlyIGZvc3RlciBjYXJlcnMgYWZ0ZXIgYmVpbmcgaW4gcGxhY2VtZW50IGZvciBzb21lIHRpbWUuIFNvY2lhbCB3b3JrZXJzIHdpdGhpbiBBZG9wdGlvbiBoYXZlIHNob3duIGEgaGlnaCBsZXZlbCBvZiBjb21taXRtZW50IHRvIHdvcmtpbmcgaW4gcGFydG5lcnNoaXAgd2l0aCB0aGVpciBDaGlsZHJlbiBMb29rZWQgQWZ0ZXIgY29sbGVhZ3VlcywgaW4gdHJhY2tpbmcgY2hpbGRyZW4gd2l0aCBwbGFucyBmb3IgcGVybWFuZW5jeSB0aHJvdWdoIG1vbnRobHkgbWVldGluZ3MgYW5kIHdpdGggdGhlIHN1cHBvcnQgb2YgdGhlIFBlcm1hbmVuY3kgUGxhbm5pbmcgQ28tb3JkaW5hdG9yLiBUaGVzZSBzeXN0ZW1zIGhhdmUgZW5hYmxlZCB3b3JrZXJzIHRvIGlkZW50aWZ5IGFkb3B0ZXJzIGF0IGFuIGVhcmx5IHN0YWdlIHdoZXJldmVyIHBvc3NpYmxlIGFuZCB0byBsb29rIGZ1cnRoZXIgYWZpZWxkIGFzIHNvb24gYXMgcG9zc2libGUgZm9yIGZhbWlseSBmaW5kaW5nIGZvciBjaGlsZHJlbiB3aG9zZSBuZWVkcyBjYW5ub3QgYmUgbWV0IHdpdGhpbiBXZXN0IFN1c3NleCByZXNvdXJjZXMuXFxuXFxuVGhlcmUgaGFzIGJlZW4gYSA2MCUgaW5jcmVhc2UgaW4gQ2FyZSBQcm9jZWVkaW5ncyB3aXRoaW4gV2VzdCBTdXNzZXggb3ZlciB0aGUgcGFzdCB0d28geWVhcnMsIHdoaWNoIGluIHR1cm4gaGFzIGluY3JlYXNlZCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHdpdGggYWRvcHRpb24gY2FyZSBwbGFucy4gVGhlcmUgaGFzIGJlZW4gaW5jcmVhc2VkIHB1YmxpY2l0eSBhcm91bmQgYWRvcHRpb24gdG8gYWR2aXNlIHRoZSBwdWJsaWMgdGhhdCBXZXN0IFN1c3NleCB3b3VsZCBsaWtlIHRvIGhlYXIgZnJvbSBmYW1pbGllcyBpbnRlcmVzdGVkIGluIGFkb3B0aW9uLCBhbmQgdGhhdCB0aGVyZSBpcyBpbiB0aGUgcmVnaW9uIG9mIDUwIGNoaWxkcmVuIGZyb20gYmFiaWVzIHVwd2FyZHMgd2l0aCBhIHBsYW4gZm9yIGFkb3B0aW9uLiBUaGUgUmVjcnVpdG1lbnQgU3RyYXRlZ3kgaXMgdW5kZXIgcmV2aWV3LCB3aXRoIGluY3JlYXNlZCBzb2NpYWwgbWVkaWEgcHJlc2VuY2UgaW4gcGxhY2UgYW5kIG1vbnRobHkgcmV2aWV3IG1lZXRpbmdzIHRvIGFzY2VydGFpbiB0aGUgaW1wYWN0IG9mIG1hcmtldGluZyB1cG9uIHJlY3J1aXRtZW50LlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGhlIGdvYWwgaXMgdG8gYWNoaWV2ZSBzdWNjZXNzZnVsIG91dGNvbWVzIGZvciBDaGlsZHJlbiBMb29rZWQgQWZ0ZXIuIFN1Y2Nlc3MgaW4gdGhpcyBnb2FsIGlzIG1lYXN1cmVkIHVzaW5nIHRoZSBhdmVyYWdlIHRpbWUgYmV0d2VlbiBhIGNoaWxkIGVudGVyaW5nIGNhcmUgYW5kIG1vdmluZyBpbiB3aXRoIHRoZWlyIGFkb3B0aXZlIGZhbWlseSAoaW4gZGF5cylcIixcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJSZWR1Y2luZyB0aGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cywgYmV0d2VlbiBhIGNoaWxkIGVudGVyaW5nIGNhcmUgYW5kIG1vdmluZyBpbiB3aXRoIHRoZWlyIGFkb3B0aXZlIGZhbWlseSBcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNS0xMC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJkYXlzIiwidGFyZ2V0Ijo0MjYsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjQyNiwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6NDg2LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6ImNtZ2UtZ3c1cCJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI8In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6OSxcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcInJlZHVjZVwiLFwidGFyZ2V0X3R5cGVcIjpcImFic29sdXRlXCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE2fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTZ9fSxcInN0YXJ0XCI6XCIyMDE2LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE2LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIGRheXMsIGJldHdlZW4gYSBjaGlsZCBlbnRlcmluZyBjYXJlIGFuZCBtb3ZpbmcgaW4gd2l0aCB0aGVpciBhZG9wdGl2ZSBmYW1pbHlcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDMtMDZUMTI6NTA6MzIuNDkwWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjM1OjA1LjEzNVoiLCJ2ZXJzaW9uIjoiMjAxOC0wMy0wNlQxMjo1MDozMi40OTBaIiwidGFyZ2V0X3RvbGVyYW5jZSI6NTAsImlkIjoiY3hxZS1ybjd2In0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiI0dW1oLTQ2ZjcifV0sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTU6MTE6MTEuNzYwWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjM1OjA1LjIxOVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxNToxMToxMS43NjBaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJjcHc3LW5nY2UiLCJuYW1lIjoiUXVhbGl0eSBvZiBDaGlsZHJlbidzIFNlcnZpY2VzIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJjcm9zc2hhaXJcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlJhdGluZ3MqKlxcblxcbigxKSBPdXRzdGFuZGluZywgKDIpIEdvb2QsICgzKSBSZXF1aXJlcyBJbXByb3ZlbWVudCBhbmQgKDQpIEluYWRlcXVhdGVcXG5cXG5UaGUgb3V0Y29tZSBvZiB0aGUgbW9zdCByZWNlbnQgT2ZzdGVkIEluc3BlY3Rpb24gdG8gYmUgY29uZHVjdGVkIGZvciB0aGVzZSBzZXJ2aWNlcyB3aXRoaW4gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgcmF0ZWQgdGhlIGF1dGhvcml0eSBhcyAnUmVxdWlyZXMgSW1wcm92ZW1lbnQnLiBUaGlzIGlzIGFzIHBlciB0aGUgaW5zcGVjdGlvbiByZXBvcnQgaXNzdWVkIGluIEphbnVhcnkgMjAxNi5cXG5cXG5QcmlvciB0byB0aGF0LCBvdXIgbGFzdCBPZnN0ZWQgaW5zcGVjdGlvbiBvZiBvdXIgY2hpbGQgcHJvdGVjdGlvbiBhcnJhbmdlbWVudHMgaW4gRmVicnVhcnkgMjAxMywgT2ZzdGVkIGp1ZGdlZCB0aGUgc2VydmljZSB0aGF0IHdlIHByb3ZpZGUgdG8ga2VlcCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIHNhZmUgdG8gYmUgXFxcImFkZXF1YXRlXFxcIi4gVGhpcyBmb2xsb3dlZCBhIHByZXZpb3VzIGluc3BlY3Rpb24gaW4gTm92ZW1iZXIgMjAxMCB3aGljaCBjb25zaWRlcmVkIG91ciBzZXJ2aWNlIHRvIGJlIFxcXCJpbmFkZXF1YXRlXFxcIi4gRHVlIHRvIHRoZSB3YXkgaW4gd2hpY2ggT2ZzdGVkIGNvbmR1Y3RzIGluc3BlY3Rpb25zIGl0IHdvdWxkIGhhdmUgYmVlbiBpbXBvc3NpYmxlIGZvciB0aGUgQ291bnR5IENvdW5jaWwgdG8gYWNoaWV2ZSBhIHJhdGluZyBiZXR0ZXIgdGhhbiBcXFwiYWRlcXVhdGVcXFwiIGZvbGxvd2luZyBhbiBcXFwiaW5hZGVxdWF0ZVxcXCIgcmF0aW5nIGluIDIwMTAuXFxuXFxuSW1wcm92ZW1lbnRzIGhhdmUgdGhlcmVmb3JlIGJlZW4gbWFkZSB0byB0aGUgc2VydmljZSB3ZSBwcm92aWRlIHRvIGtlZXAgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSBzYWZlIGJ1dCB3ZSBhcmUgbm90IGNvbXBsYWNlbnQuIEl0IGlzIG91ciBhbWJpdGlvbiB0byByZWNlaXZlIGEgXFxcImdvb2RcXFwiIG9yIGJldHRlciByYXRpbmcgYXQgb3VyIG5leHQgT2ZzdGVkIGluc3BlY3Rpb24uIFBsYW5zIGFyZSBpbiBwbGFjZSB0byBpbXByb3ZlIG91ciBzZXJ2aWNlcyBmb3IgdnVsbmVyYWJsZSBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIGFuZCB3ZSBiZWxpZXZlIHRoYXQgdGhlIGVmZm9ydHMgd2UgYXJlIG1ha2luZyB3aWxsIHJlc3VsdCBpbiBmdXJ0aGVyIGltcHJvdmVtZW50cyB0byBvdXIgT2ZzdGVkIHJhdGluZyBhdCBvdXIgbmV4dCBpbnNwZWN0aW9uLlxcblxcbldoaWxlIG91ciBzYWZlZ3VhcmRpbmcgc2VydmljZXMgaGF2ZSBiZWVuIHRoZSBzdWJqZWN0IG9mIEdvdmVybm1lbnQgaW50ZXJ2ZW50aW9uIGFuZCBhcmUgbm93IGFkZXF1YXRlLCBvdXIgRm9zdGVyaW5nIGFuZCBBZG9wdGlvbiBzZXJ2aWNlcyBoYXZlIGJvdGggYmVlbiBpbnNwZWN0ZWQgaW4gdGhlIGxhc3QgdHdvIHllYXJzIGFuZCBib3RoIHNlcnZpY2VzIHdlcmUganVkZ2VkIHRvIGJlIEdvb2Qgd2l0aCBPdXRzdGFuZGluZyBmZWF0dXJlcy5cXG5cXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgT2ZzdGVkIHJlZ3VsYXRlcyBhbmQgaW5zcGVjdHMgY2hpbGRyZW7igJlzIHNvY2lhbCBjYXJlLCBwbGVhc2UgZ28gdG8gdGhlIE9mc3RlZCB3ZWJzaXRlOlxcblxcbiBcXG5cXG5baHR0cDovL3d3dy5vZnN0ZWQuZ292LnVrL2NoaWxkcmVuLWFuZC1mYW1pbGllcy1zZXJ2aWNlc11bMF1cXG5cXG5bMF06IGh0dHA6Ly93d3cub2ZzdGVkLmdvdi51ay9jaGlsZHJlbi1hbmQtZmFtaWxpZXMtc2VydmljZXNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblJlc3BvbmRpbmcgdG8gY29uY2VybnMgaGFzIGJlZW4gYSBwcmlvcml0eSBhcmVhIGZvciB1cyBhbmQgd2UgY2FuIG5vdyBkZW1vbnN0cmF0ZSB0aGF0IDk5JSBvZiByZWZlcnJhbHMgYXJlIGRlYWx0IHdpdGggd2l0aGluIDI0aHJzLlxcblxcbldvcmsgaGFzIGFsc28gZm9jdXNlZCBvbiBpbXByb3ZpbmcgdGhlIHRpbWVsaW5lc3Mgb2YgY2hpbGQgcHJvdGVjdGlvbiBjb25mZXJlbmNlcyB0byBlbnN1cmUgdGhhdCBjaGlsZHJlbiBhcmUgc2FmZSBhbmQgcmVndWxhcmx5IHJldmlld2VkLiBDdXJyZW50IGRhdGEgc2hvd3MgdGhhdCA5MiUgb2YgY29uZmVyZW5jZXMgYXJlIGhlbGQgb24gdGltZS4gVGhpcyBjb21wYXJlcyB0byBhIG5hdGlvbmFsIGZpZ3VyZSBvZiA3NyUuXFxuXFxuKiBBZGRpdGlvbmFsbHkgd2UgYXJlIHVuZGVydGFraW5nIHJlZ3VsYXIgYXVkaXRzIG9mIGNoaWxkIHByb3RlY3Rpb24gcGxhbnMgdG8gZW5zdXJlIHRoYXQgd2UgaGF2ZSBzdHJlbmd0aGVuZWQgZGVjaXNpb24gbWFraW5nIGFuZCB0aGF0IHB1cnBvc2VmdWwgd29yayBpcyB0YWtpbmcgcGxhY2Ugd2l0aCBjaGlsZHJlbiBhdCByaXNrIG9mIGhhcm0uXFxuXFxuT3ZlcmFsbCBwZXJmb3JtYW5jZSBoYXMgY29udGludWVkIHRvIGltcHJvdmUgaW4gUXVhcnRlciAzIGFuZCB3ZSBoYXZlIHJvYnVzdCBwbGFucyBpbiBwbGFjZSB0byBlbnN1cmUgdGhhdCB3ZSBmb2N1cyBvbiBxdWFsaXR5IG9mIHByYWN0aWNlIHNvIHRoYXQgb3VyIGNoaWxkcmVuIGFuZCB0aGVpciBmYW1pbGllcyBnZXQgdGhlIGJlc3Qgc2VydmljZXMgYW5kIHN1cHBvcnQgdG8gbWVldCB0aGVpciBuZWVkcy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLUp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5JbiB0aGlzIHF1YXJ0ZXIgd2UgaGF2ZSBiZWVuIGFibGUgdG8gaW1wcm92ZSBob3cgcXVpY2tseSB3ZSBjYW4gbWFrZSBkZWNpc2lvbnMgd2hlbiB3ZSBhcmUgYXNrZWQgaWYgd2UgY2FuIHByb3ZpZGUgc3VwcG9ydCB0byBhIGNoaWxkLiBOb3cgNzAlIG9mIHJlZmVycmFscyBoYXZlIGEgZGVjaXNpb24gd2l0aGluIDI0IGhvdXJzLiBPdXIgdGFyZ2V0IGZvciB0aGlzIHllYXIgaXMgdG8gYmUgYWJsZSB0byBhY2hpZXZlIHRoaXMgaW4gODUlIG9mIGNhc2VzLiBMYXRlciB0aGlzIHllYXIgaW4gU2VwdGVtYmVyLCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyByZWNvcmRpbmcgdG9vbCB3aWxsIHN1cHBvcnQgaW1wcm92ZWQgdGltZWxpbmVzcy5cXG5cXG5XZSB3YW50IHRvIGVuc3VyZSB0aGUgYmVzdCBvdXRjb21lcyBmb3IgY2hpbGRyZW4gd2UgbG9vayBhZnRlci4gV2Ugd2FudCB0byBlbnN1cmUgY2hpbGRyZW4gd2hvIG5lZWQgc3BlY2lhbGlzdCBlbW90aW9uYWwgb3IgcHN5Y2hvbG9naWNhbCBzdXBwb3J0IGFzIGEgcmVzdWx0IG9mIHRyYXVtYSB0aGV5IGhhdmUgc3VmZmVyZWQgYXJlIGlkZW50aWZpZWQgYW5kIHByb3ZpZGVkIHdpdGggc2VydmljZXMgd2l0aG91dCBkZWxheS4gSW4gUXVhcnRlciwgMSwgOTQlIG9mIGNoaWxkcmVuIGxvb2tlZCBhZnRlciBoYWQgYW4gYXNzZXNzbWVudCBvZiBuZWVkIGNhbGxlZCBhIHN0cmVuZ3RocyBhbmQgZGlmZmljdWx0aWVzIHF1ZXN0aW9ubmFpcmUuIFdlIGhhdmUgZXhjZWVkZWQgb3VyIHRhcmdldCBmb3IgdGhpcyB5ZWFyLiBXZSBoYXZlIGFsc28gYmVlbiBhYmxlIHRvIGVuc3VyZSBjaGlsZHJlbiBkbyBub3Qgd2FpdCBmb3IgcHN5Y2hvbG9naWNhbCBhc3Nlc3NtZW50IG9yIHRoZXJhcHkgd2l0aCA5NSUgb2YgY2hpbGRyZW4gcmVjZWl2aW5nIGhlbHAgd2l0aGluIHRpbWUgc2NhbGVzLlxcblxcbiBcXG5cXG5XZSB3YW50IHRvIG5hcnJvdyB0aGUgYWNoaWV2ZW1lbnQgZ2FwIGJldHdlZW4gY2hpbGRyZW4gbG9va2VkIGFmdGVyIGFuZCBvdGhlciBjaGlsZHJlbiwgYW5kIHN1cHBvcnQgdGhlbSB0byBiZSByZWFkeSBmb3Igd29yayBhcyB0aGV5IGdldCBvbGRlci4gSW4gUXVhcnRlciAxLCA2NiUgb2YgY2FyZSBsZWF2ZXJzIHdlcmUgaW52b2x2ZWQgaW4gZWR1Y2F0aW9uLCB0cmFpbmluZyBvciBlbXBsb3ltZW50LiBUaGlzIGlzIGFuIGltcHJvdmVtZW50IG9uIGxhc3QgeWVhciBhbmQgaXMgYmV0dGVyIHRoYW4gc2ltaWxhciBhdXRob3JpdGllcyBtYXRjaGVkIGZvciBuZWVkLiBPdXIgYW1iaXRpb24gaXMgdG8gY29udGludWUgdG8gYWNoaWV2ZSBpbXByb3ZlbWVudCBpbiB0aGlzIHJlc3BlY3Qgc28gdGhhdCB5b3VuZyBwZW9wbGUgbWFrZSBhIGdvb2QgdHJhbnNpdGlvbiB0byBhZHVsdCBsaWZlIGFsdGhvdWdoIHdlIGhhdmUgbWV0IHRoZSB0YXJnZXQgWzY1JV0gc2V0IGZvciB0aGlzIHllYXIuXFxuXFxuV2Ugd2FudCB0byBtYWtlIHN1cmUgeW91bmcgY2hpbGRyZW4gd2hvIGNhbm5vdCBsaXZlIHNhZmVseSB3aXRoIHRoZWlyIHBhcmVudHMgZG8gbm90IHdhaXQgYmVmb3JlIHRoZXkgY2FuIGpvaW4gYSBzYWZlIHBlcm1hbmVudCBmYW1pbHkgdGhyb3VnaCBhZG9wdGlvbi4gRnJvbSBDb3VydCBwZXJtaXNzaW9uIHRvIG1hdGNoIHdpdGggYWRvcHRlcnMgaGFzIGJlZW4gMTg3IGRheXMgaW4gUXVhcnRlciAxLiBXZSBoYXZlIGluY3JlYXNlZCByZWNydWl0bWVudCBhbmQgd2lsbCBjb250aW51ZSB0byB3b3JrIG9uIGluY3JlYXNpbmcgb3VyIHBvb2wgb2YgYWRvcHRlcnMuIE91ciBwZXJmb3JtYW5jZSBpbiB0aW1lbGluZXNzIG9mIHNlY3VyaW5nIGEgcGVybWFuZW50IHBsYWNlbWVudCBmb3IgYSBjaGlsZCByZW1haW5zIGdvb2Qgd2hlbiBjb21wYXJlZCB0byBzaW1pbGFyIGF1dGhvcml0aWVzLlxcblxcbk92ZXJhbGwgcGVyZm9ybWFuY2UgaGFzIGNvbnRpbnVlZCB0byBpbXByb3ZlIGluIFF1YXJ0ZXIgMSBXZSB3aWxsIGFsc28gY29udGludWUgdG8gZm9jdXMgb24gcXVhbGl0eSBvZiBwcmFjdGljZSB0byBlbnN1cmUgb3VyIGNoaWxkcmVuIGFuZCBmYW1pbGllcyBnZXQgdGhlIGJlc3Qgc2VydmljZXMuIFRoaXMgd2lsbCBwb3NpdGlvbiB0aGUgc2VydmljZSB3ZWxsIHRvIGFjaGlldmUgYSDigJxHb29k4oCdIGp1ZGdlbWVudCBhdCBmdXR1cmUgaW5zcGVjdGlvbiBpZiB3ZSBjb250aW51ZSB0byBkcml2ZSBjb25zaXN0ZW50IGdvb2QgcHJhY3RpY2UuIFRoaXMgaXMgY2hhbGxlbmdlZCBieSBpbmNyZWFzZWQgY2FzZS13b3JrIGRlbWFuZCBpbiBRdWFydGVyIDEgY3JlYXRpbmcgc29tZSB3b3JrbG9hZCBwcmVzc3VyZXMgYWNyb3NzIHRoZSBzZXJ2aWNlLlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW1wcm92ZSBvdXIgQ2hpbGRyZW4ncyBTZXJ2aWNlcycgT2ZzdGVkIHJhdGluZyB0byBnb29kXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGhpcyBnb2FsIGlzIG1lYXN1cmVkIHVzaW5nIHRoZSBPZnN0ZWQgZnJhbWV3b3JrIGZvciB0aGUgaW5zcGVjdGlvbiBvZiBzZXJ2aWNlcyBmb3IgY2hpbGRyZW4gaW4gbmVlZCBvZiBoZWxwIGFuZCBwcm90ZWN0aW9uLCBjaGlsZHJlbiBsb29rZWQgYWZ0ZXIgYW5kIGNhcmUgbGVhdmVyc1wifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDEyLTA2LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6InJhdGluZyIsInRhcmdldCI6MiwidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6MiwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiI5YjZ4LWlocmUifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjUsXCJ5ZWFyXCI6MjAxMn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJpbmNyZWFzZVwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fX0sXCJzdGFydFwiOlwiMjAxNC0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNC0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcIm91ciBDaGlsZHJlbidzJyBTZXJ2aWNlcyBPZnN0ZWQgcmF0aW5nIFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJ3aXRoaW5fdG9sZXJhbmNlXCJ9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjE3OjU3Ljc2M1oiLCJ2ZXJzaW9uIjoiMjAxOC0wMS0yNVQxNDoxNzo1Ny43NjNaIiwiaWQiOiJtdjV3LXV4cmMifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MTc6NTcuODM0WiIsInZlcnNpb24iOiIyMDE4LTAxLTI1VDE0OjE3OjU3LjgzNFoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6Inh1ajgtNnd6YiIsIm5hbWUiOiJQcm9ncmVzcyBjaGVjayBvZiBjaGlsZCBkZXZlbG9wbWVudCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwiY3Jvc3NoYWlyXCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipUaGlzIG1lYXN1cmUgcmVsYXRlcyB0byBjaGlsZHJlbiBpbiBOYXRpb25hbCBDdXJyaWN1bHVtIHllYXIgZ3JvdXAgUmVjZXB0aW9uIChjaGlsZHJlbiBhZ2VkIDQtNSB5ZWFycykqKlxcblxcblRoZSBzdGF0dXRvcnkgRWFybHkgWWVhcnMgRm91bmRhdGlvbiBTdGFnZSAoRVlGUykgZnJhbWV3b3JrIHJlcXVpcmVzIGEgcHJvZmlsZSBhc3Nlc3NtZW50IHRvIGJlIGNhcnJpZWQgb3V0IGluIHRoZSBmaW5hbCB0ZXJtIG9mIHRoZSB5ZWFyIGluIHdoaWNoIGEgY2hpbGQgcmVhY2hlcyBhZ2UgNS4gVGhlIG1haW4gcHVycG9zZSBvZiB0aGUgcHJvZmlsZSBpcyB0byBwcm92aWRlIGEgcmVsaWFibGUsIHZhbGlkIGFuZCBhY2N1cmF0ZSBhc3Nlc3NtZW50IG9mIGluZGl2aWR1YWwgY2hpbGRyZW4uXFxuXFxuIENoaWxkcmVuIGFyZSBkZWZpbmVkIGFzIGhhdmluZyByZWFjaGVkIGEgZ29vZCBsZXZlbCBvZiBkZXZlbG9wbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBFWUZTIGlmIHRoZXkgaGF2ZSBhY2hpZXZlZCBhdCBsZWFzdCB0aGUgZXhwZWN0ZWQgbGV2ZWwgaW4gIDMgcHJpbWUgYXJlYXMgb2YgbGVhcm5pbmc6LVxcblxcbiogcGVyc29uYWwsIHNvY2lhbCBhbmQgZW1vdGlvbmFsIGRldmVsb3BtZW50XFxuXFxuKiBwaHlzaWNhbCBkZXZlbG9wbWVudFxcblxcbiogY29tbXVuaWNhdGlvbiBhbmQgbGFuZ3VhZ2VcXG5cXG5hbmQgc3BlY2lmaWMgYXJlYXMgaW46LVxcblxcbiogbWF0aGVtYXRpY3NcXG5cXG4qIGxpdGVyYWN5XFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqTm92ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5HTEQgZm9yIGFsbCBjaGlsZHJlbiBpbiAyMDE3IGlzIDcwLjYlIGFuIGltcHJvdmVtZW50IG9mIDIuMyUgY29tcGFyZWQgdG8gMjAxNjsgY29udGludWluZyB0aGUgdHJlbmQgb2YgeWVhciBvbiB5ZWFyIGltcHJvdmVtZW50Llxcblxcbldlc3QgU3Vzc2V4IGFsc28gY29udGludWVzIHRvIHJpc2UgaW4gdGhlIG5hdGlvbmFsIHJhbmtpbmdzIGZvciBHTEQsYmVpbmcgcGxhY2VkIDc4dGggdGhpcyB5ZWFyLCBhbiBpbXByb3ZlbWVudCBvZiAxOSBwbGFjZXMgbmF0aW9uYWxseS5Db21wYXJlZCB0byBzdGF0aXN0aWNhbCBuZWlnaGJvdXJzLCBXZXN0IFN1c3NleCBpcyByYW5rZWQgN3RoIG9mIDExIExvY2FsIEF1dGhvcml0aWVzLCBhbiBpbXByb3ZlbWVudCBvZiAyIHBsYWNlcyBzaW5jZSAyMDE2LlxcblxcblRoZSBhdHRhaW5tZW50IGdhcCBiZXR3ZWVuIHRoZSBsb3dlc3QgYWNoaWV2aW5nIDIwJSBvZiBjaGlsZHJlbiBhbmQgdGhlIHJlc3QgaGFzIHdpZGVuZWQgaW4gMjAxNyBhdCB0aGUgc2FtZSByYXRlIGFzIHRoZSBuYXRpb25hbCBhdHRhaW5tZW50IGdhcC4gVGhlIGF0dGFpbm1lbnQgZ2FwIGZvciBFbmdsYW5kIHdpZGVuZWQgZnJvbSAzMS40JSB0byAzMS43JTsgd2hpbHN0IHRoZSBnYXAgaW4gV2VzdCBTdXNzZXggaGFzIHdpZGVuZWQgZnJvbSAyNy4xJSB0byAyNy40JVxcblxcbkdpcmxz4oCZIGF0dGFpbm1lbnQgaW4gV2VzdCBTdXNzZXggY29udGludWVzIHRvIGJlIGhpZ2hlciB0aGFuIGJveXPigJksIHdpdGggdGhlIGdyZWF0ZXN0IGRpZmZlcmVuY2VzIGluIExpdGVyYWN5IGFuZCBFeHByZXNzaXZlIEFydHMgYW5kIGRlc2lnbi5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuV29yayB0byByYWlzZSBHb29kIExldmVsIG9mIERldmVsb3BtZW50ICggR0xEKSBhY3Jvc3MgdGhlIGNvdW50eSBoYXMgY29udGludWVkIHdpdGggc3VwcG9ydCBiZWluZyBwcm92aWRlZCBmb3IgYWxsIHNjaG9vbHMgd2hlcmUgR0xEIHdhcyBiZWxvdyBuYXRpb25hbCBhdmVyYWdlLiBUaGUgbGV2ZWwgb2YgR0xEIGlzIHJlY29yZGVkIGVhY2ggc3VtbWVyIGJ1dCB0aGUgZnVsbCByZXN1bHRzIGFyZSBub3QgeWV0IGF2YWlsYWJsZSBmb3IgMjAxNy4gRWFybHkgaW5kaWNhdGlvbnMgYXJlIHRoYXQgc3RhbmRhcmRzIGhhdmUgcmlzZW4gYm90aCBpbiBXZXN0IFN1c3NleCBhbmQgbmF0aW9uYWxseSB3aXRoIFdlc3QgU3Vzc2V4IGJlaW5nIGJyb2FkbHkgaW4gbGluZSB3aXRoIG5hdGlvbmFsIGF2ZXJhZ2VzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKk5vdmVtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuR29vZCBsZXZlbCBvZiBkZXZlbG9wbWVudCAoR0xEKSBmb3IgYWxsIGNoaWxkcmVuIGluIDIwMTYgd2FzIDY4LjMlLCBhbiBpbXByb3ZlbWVudCBvZiA0LjMlIGNvbXBhcmVkIHRvIDIwMTUgYW5kIGNvbnRpbnVpbmcgdGhlIHRyZW5kIG9mIDQgb3IgNSUgcG9pbnQgaW5jcmVhc2VzIHNpbmNlIDIwMTMsIHdoZXJlYXMgdGhlIGF2ZXJhZ2UgaW5jcmVhc2UgaW4gR0xEIGFjcm9zcyB0aGUgU291dGggRWFzdCB3YXMgb25seSAyLjklLlxcblxcbkFzIGluIEVuZ2xhbmQgYW5kIHRoZSBTb3V0aCBFYXN0LCB0aGVyZSBpcyBhIGRpc3RpbmN0IGdlbmRlciBnYXAgaW4gR0xEIGF0dGFpbm1lbnQgaW4gV2VzdCBTdXNzZXguIEFsdGhvdWdoIHRoZSBnYXAgaGFzIHJlZHVjZWQgdG8gMTUuMiUgdGhpcyB5ZWFyIGZyb20gMTguNCUgaW4gMjAxMywgaXQgcmVtYWlucyBncmVhdGVyIHRoYW4gdGhlIFNvdXRoIGVhc3QgYXQgMTQuNCUgYW5kIEVuZ2xhbmQgYXQgMTQuNyUuXFxuXFxuQ2hpbGRyZW7igJlzIGJpcnRoIGRhdGUsIGFuZCB0aGVyZWZvcmUgdGhlIGFnZSBhdCB3aGljaCB0aGV5IGFyZSBhc3Nlc3NlZCwgY29udGludWVzIHRvIGJlIGEgc2lnbmlmaWNhbnQgZmFjdG9yLiBUaGlzIHllYXIgNzglIG9mIGF1dHVtbiBib3JuIGNoaWxkcmVuIGF0dGFpbmVkIEdMRCwgd2hpbHN0IG9ubHkgNTYlIG9mIHN1bW1lciBib3JuIGNoaWxkcmVuIGF0dGFpbmVkIEdMRC5cXG5cXG5UaGVyZSBpcyBhbHNvIGEgc2lnbmlmaWNhbnQgYXR0YWlubWVudCBnYXAgYmV0d2VlbiBjaGlsZHJlbiB3aXRoIGFuIEVkdWNhdGlvbiBIZWFsdGggYW5kIENhcmUgUGxhbiwgYSBzdGF0ZW1lbnQgb2YgU0VOIG9yIHdobyByZWNlaXZlIFNFTiBzY2hvb2wgc3VwcG9ydC4gMjElIG9mIHRoZXNlIGNoaWxkcmVuIGFjaGlldmVkIEdMRCBjb21wYXJlZCB0byA2OC4zJSBvZiB0aGUgcG9wdWxhdGlvbi4gVGhlcmUgd2VyZSA3NDQgY2hpbGRyZW4gaW4gdGhpcyBncm91cC5cXG5cXG5SZXN1bHRzIGZvciBjaGlsZHJlbiB3aG8gd2VyZSBlbGlnaWJsZSBmb3IgMiB5ZWFyIG9sZCBmdW5kZWQgcGxhY2VzIHNob3cgdGhhdCA1MyUgb2YgdGhlIGNvaG9ydCB3ZW50IG9uIHRvIGFjaGlldmUgR0xEIGNvbXBhcmVkIHRvIDY4LjMlIG9mIHRoZSBwb3B1bGF0aW9uLlxcblxcbioqSW1wcm92ZW1lbnRzIHBsYW5uZWQqKlxcblxcblNjaG9vbCBJbXByb3ZlbWVudCBBZHZpc2VycyBoYXZlIGJlZW4gbWFraW5nIHRlcm1seSB2aXNpdHMgdG8gYWxsIHNjaG9vbHMgc2luY2UgdGhlIHN1bW1lciB0ZXJtOyB0aGVzZSBpbmNsdWRlIHNwZWNpZmljIHF1ZXN0aW9ucyBmb3IgYWxsIEhlYWRzIGFuZCBFWUZTIGxlYWRlcnMgb24gcHVwaWwgcHJvZ3Jlc3MsIHRhcmdldCBzZXR0aW5nIGFuZCBtb25pdG9yaW5nIGF0dGFpbm1lbnQuIFRoZSBlYXJseSB5ZWFycyBhZHZpc29yeSB0ZWFtIG9mZmVyIHRhcmdldGVkIHN1cHBvcnQgdG8gc2Nob29scyBqdWRnZWQgYnkgT2ZzdGVkIHRvIGJlIEluYWRlcXVhdGUgb3IgUmVxdWlyZXMgSW1wcm92ZW1lbnQgYW5kIHRvIHNjaG9vbHMgYXR0YWluaW5nIGxvdyBHTEQuIFRoaXMgaW52b2x2ZXMgcXVhbGl0eSBhc3N1cmluZyBwcmFjdGljZSBhbmQgdGFyZ2V0IHNldHRpbmcgZm9yIGdyb3VwcyBvZiBjaGlsZHJlbi4gVGhpcyBhcHByb2FjaCB3aXRoIHNjaG9vbHMgaXMgb24tZ29pbmcuXFxuXFxuUG9vciB0cmFuc2l0aW9uIGlzIGEgY29udHJpYnV0b3J5IGZhY3RvciB0byBsb3cgR0xEIGFzIGNoaWxkcmVuIG1ha2Ugb3B0aW1hbCBwcm9ncmVzcyB3aGVuIGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIGF0dGFpbm1lbnQgYW5kIHByb2dyZXNzIGZyb20gc3RhcnRpbmcgcG9pbnRzIGlzIHNoYXJlZCBlZmZlY3RpdmVseSBhbmQgaW4gZ29vZCB0aW1lLiBUbyBhc3Npc3QgcHJlLXNjaG9vbCBwcmFjdGl0aW9uZXJzIGFuZCBzY2hvb2wgdGVhY2hlcnMgaW4gbWFuYWdpbmcgZWZmZWN0aXZlIHRyYW5zaXRpb25zIHdlIGFyZSB0YWtpbmcgYSBudW1iZXIgb2YgYWN0aW9uczpcXG5cXG4qIEVtYmVkZGluZyBDb3VudHktd2lkZSBzY2hvb2wgYW5kIHNldHRpbmcgdHJhbnNpdGlvbiBldmVudHMgYWxyZWFkeSBpbiBwbGFjZVxcbiogUHJvZHVjaW5nIHVuaXZlcnNhbCBhbmQgc3VwcG9ydGVkIHRyYW5zaXRpb24gZ3VpZGFuY2UgaW5jbHVkaW5nIGNhc2Ugc3R1ZGllcyBvZiBiZXN0IHByYWN0aWNlXFxuKiBSZS1kcmFmdGluZyB0cmFuc2l0aW9uIGd1aWRhbmNlIGZvciBwYXJlbnRzIGFuZCBjYXJlcnNcXG4qIFByb2R1Y2luZyBndWlkYW5jZSBvbiBob21lIHZpc2l0aW5nIGZvciBzZXR0aW5ncyBhbmQgc2Nob29scyBhbmQgcHJvbW90aW5nIGl0IGFzIGdvb2QgcHJhY3RpY2VcXG4qIFByb2R1Y2luZyBhIDEtcGFnZSBwcm9maWxlLCB0YWtlbiBmcm9tIHRoZSBleGlzdGluZyBMZWFybmluZyBKb3VybmV5IGRvY3VtZW50LCB0byBiZSBwYXNzZWQgZnJvbSBzZXR0aW5nIHRvIHNjaG9vbCBmb3IgZWFjaCBjaGlsZFxcbiogV29ya2luZyB3aXRoIEhlYWQgVGVhY2hlcnMgYW5kIEVhcmx5IFllYXJzIGxlYWRlcnMgdG8gc2V0IG91dCBhZ3JlZWQgcHJpbmNpcGxlcyBhbmQgZXhwZWN0YXRpb25zIG9mIGNoaWxkcmVu4oCZcyByZWFkaW5lc3MgZm9yIHNjaG9vbCwgYW5kIHNjaG9vbHPigJkgcmVhZGluZXNzIGZvciBjaGlsZHJlbiwgYW5kIHVzaW5nIHRoZXNlIHRvIHVuZGVycGluIG9uLWdvaW5nIGd1aWRhbmNlIGFuZCB0cmFpbmluZy5cXG5cXG5UaGUgdnVsbmVyYWJsZSBsZWFybmVycyBhdWRpdCB3aWxsIGNvbnRpbnVlIHRvIGJlIGNhcnJpZWQgb3V0IHRlcm1seSBieSBhZHZpc2VycyBpbiB0aGUgRWFybHkgQ2hpbGRob29kIFNlcnZpY2UuIFByZS1zY2hvb2wgc2V0dGluZ3MgaWRlbnRpZmllZCBpbiB0aGUgc3VtbWVyIHRlcm0gYXMgbGVzcyBhYmxlIHRvIHN1cHBvcnQgdnVsbmVyYWJsZSBsZWFybmVycyB3aWxsIGJlIHByaW9yaXRpc2VkIGZvciB2aXNpdHMgYnkgZWFybHkgeWVhcnMgYW5kIGNoaWxkY2FyZSBhZHZpc2Vycy4gU2V0dGluZ3Mgd2hlcmUgdnVsbmVyYWJsZSBsZWFybmVycyBhcmUgd2VsbCBzdXBwb3J0ZWQgd2lsbCByZWNlaXZlIHRlbGVwaG9uZSBzdXBwb3J0LiBQcmFjdGljZSBpbiBzZXR0aW5ncyBvZmZlcmluZyBmcmVlIDIgeWVhciBvbGQgcGxhY2VzIHdpbGwgYmUgc2NydXRpbmlzZWQgdGhyb3VnaCB0aGUgdnVsbmVyYWJsZSBsZWFybmVycyBhdWRpdCBwcm9jZXNzLiBXZSB3aWxsIHJldmlzaXQgYSBwcm9qZWN0IGRldmVsb3BlZCB3aXRoIENhbnRlcmJ1cnkgQ2hyaXN0Y2h1cmNoIFVuaXZlcnNpdHkgaW4gMjAxNCB0byBpbXByb3ZlIHRoZSBxdWFsaXR5IG9mIGVhcmx5IHllYXJzIHByYWN0aWNlIGluIHdvcmtpbmcgd2l0aCAyIHllYXIgb2xkcyB0aHJvdWdoIG91ciBlc3RhYmxpc2hlZCBsb2NhbGl0eSBiYXNlZCBuZXR3b3JrcyBhbmQgdHJhaW5pbmcgcHJvZ3JhbW1lLlxcblxcbkEgcHJvZ3JhbW1lIG9mIG1vZGVyYXRpb24gYWN0aXZpdHkgdGhyb3VnaCBsb2NhbGl0eSBiYXNlZCBuZXR3b3JrcyBoYXMgYmVlbiBlbWJlZGRlZCBhbmQgd2UgYmVsaWV2ZSB0aGF0IHRoaXMgaGFzIGhhZCBhIHBvc2l0aXZlIGltcGFjdCBvbiBHTEQgaW4gMjAxNS0xNi4gVGhlcmUgd2FzIGEgc3VzdGFpbmVkIGZvY3VzIG9uIGJveXMgd3JpdGluZyB3aGljaCByZXN1bHRlZCBpbiB0ZWFjaGVycyBiZWluZyBhYmxlIHRvIG1ha2UganVkZ21lbnRzIGJhc2VkIG9uIHNvdW5kIGV2aWRlbmNlLiBUaGlzIGFwcHJvYWNoIHdpbGwgY29udGludWUsIGFuZCB0cmFpbmluZyBldmVudHMgZHVyaW5nIDIwMTYtMTcgd2lsbCBzdXBwb3J0IGRpc3NlbWluYXRpb24gb2YgYmVzdCBwcmFjdGljZSwgcGVlciBjb2FjaGluZyBhbmQgZW5zdXJlIHRoZSBSZWNlcHRpb24gdGVhY2hlcnMgYXJlIGNvbmZpZGVudCBpbiBtYWtpbmcgYWNjdXJhdGUgYW5kIGNvbnNpc3RlbnQgYXNzZXNzbWVudHMgb2YgY2hpbGRyZW7igJlzIGxlYXJuaW5nIGFuZCBkZXZlbG9wbWVudC5cXG5cXG5UaGUgU2Nob29sIEltcHJvdmVtZW50IFNlcnZpY2Ugb2ZmZXIgdHJhaW5pbmcgZm9jdXNpbmcgb24gYXJlYXMgb2YgdGhlIGN1cnJpY3VsdW0gd2hlcmUgZmV3ZXIgY2hpbGRyZW4gYWNoaWV2ZSBHTEQuIFRyYWluaW5nIGlzIGN1cnJlbnRseSBiZWluZyBkZWxpdmVyZWQgYW5kIGEgc2VyaWVzIG9mIHRyYWluaW5nIGV2ZW50cyBoYXMgYmVlbiBwbGFubmVkIHRvIGltcHJvdmUgdGVhY2hlcnPigJkga25vd2xlZGdlIGFuZCBza2lsbHMsIGZvciBleGFtcGxlLCBhZGRyZXNzaW5nIGdlbmRlciBpc3N1ZXMgaW4gbGVhcm5pbmcgZ2VuZXJhbGx5IGFuZCBwYXJ0aWN1bGFybHkgaW4gd3JpdGluZywgbGVhZGVyc2hpcCBpbiBzY2hvb2xzLCBhbmQgdXNpbmcgZGF0YSB0byBpbmZvcm0gcGxhbm5pbmcuIFRyYWluaW5nIGNvbnRpbnVlcyB0byBiZSBhdmFpbGFibGUgdGhyb3VnaCBhIHN1YnNjcmlwdGlvbiBwcm9ncmFtbWUgZm9yIHByZS1zY2hvb2xzIHRocm91Z2ggdGhlIEVhcmx5IENoaWxkaG9vZCBTZXJ2aWNlLCBhbmQgdGhpcyBjb250aW51ZXMgdG8gdGFyZ2V0IGFzcGVjdHMgb2YgbGVhcm5pbmcgd2hlcmUgR0xEIHJlc3VsdHMgYXJlIHBvb3IsIGFuZCB0byBhZGRyZXNzIHRoZW1lcyBlbWVyZ2luZyBmcm9tIE9mc3RlZCBpbnNwZWN0aW9ucy4gV2UgaGF2ZSBhbmFseXNlZCBHTEQgYnkgQ2hpbGRyZW4gYW5kIEZhbWlseSBDZW50cmUgcmVhY2ggYXJlYXMgbG9va2luZyBhdCBhdHRhaW5tZW50IGluIHNwZWNpZmljIGFzcGVjdHMgb2YgbGVhcm5pbmcgYW5kIHRoaXMgd2lsbCBkcml2ZSB0YXJnZXRlZCBpbnRlcnZlbnRpb25zIGFuZCB0cmFpbmluZyBsZWQgYnkgQ2hpbGRyZW4gYW5kIEZhbWlseSBDZW50cmVzLCBhbmQgdGhyb3VnaCBsb2NhbGl0eSBiYXNlZCBuZXR3b3JrcyBkdXJpbmcgMjAxNi0xNy5cXG5cXG5UaGUgRWFybHkgQ2hpbGRob29kIFNlcnZpY2Ugd2lsbCBjb250aW51ZSB0byBzdXBwb3J0IGFuZCBjaGFsbGVuZ2UgcHJlLXNjaG9vbCBwcm92aWRlcnMgdG8gaW5jbHVkZSBhbGwgY2hpbGRyZW4gYW5kIHRvIHJlZmluZSBvdXIgcmVmZXJyYWwgcHJvY2Vzc2VzIGZvciBjaGlsZHJlbiB3aXRoIFNFTkQuIFdlIGNvbnRpbnVlIHRvIG1vbml0b3IgdGhlIG91dGNvbWVzIG9mIGNoaWxkcmVuIHdobyByZWNlaXZlIGZ1bmRpbmcgZm9yIHN1cHBvcnQgaW4gcHJlLXNjaG9vbHMsIGluY2x1ZGluZyB0aG9zZSBjaGlsZHJlbiB3aG8gZ28gb24gdG8gcmVjZWl2ZSBhbiBFZHVjYXRpb24gSGVhbHRoIGFuZCBDYXJlIG5lZWRzIGFzc2Vzc21lbnQuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzaW5nIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gYXNzZXNzZWQgYXQgYSBnb29kIGxldmVsIG9mIGRldmVsb3BtZW50XCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGFyZ2V0OiBpbmNyZWFzZSBwZXJmb3JtYW5jZSB0byBhdCBsZWFzdCB0aGUgbGV2ZWwgb2YgdXBwZXIgcXVhcnRpbGUgcGVyZm9ybWFuY2UgZm9yIHRoZSBTb3V0aCBFYXN0IGJ5IDIwMTlcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxMy0wMS0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0Ijo3NSwidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJqZ3czLWsyM2IifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTN9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH19LFwic3RhcnRcIjpcIjIwMTQtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTQtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJwcm9ncmVzcyBjaGVjayBvZiBjaGlsZCBkZXZlbG9wbWVudFwiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjpmYWxzZX0sXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjp0cnVlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcIndpdGhpbl90b2xlcmFuY2VcIn0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6NDg6MDQuODk1WiIsInZlcnNpb24iOiIyMDE4LTAxLTI1VDE0OjQ4OjA0Ljg5NVoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoxMCwiaWQiOiI4NnVnLXB3cWcifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6NDg6MDQuOTY0WiIsInZlcnNpb24iOiIyMDE4LTAxLTI1VDE0OjQ4OjA0Ljk2NFoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6InBpZ3YtbmlkNyIsIm5hbWUiOiJQcmltYXJ5IFB1cGlsIEF0dGFpbm1lbnQiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKktleSBTdGFnZSAyKipcXG5cXG5QdXBpbHMgYWdlZCBmcm9tIDcgdG8gMTEgeWVhcnMgb2xkIHdvcmsgYXQgS2V5IFN0YWdlIDIuIFRoZSBuZXcgbW9yZSBjaGFsbGVuZ2luZyBuYXRpb25hbCBjdXJyaWN1bHVtLCB3aGljaCB3YXMgaW50cm9kdWNlZCBpbiAyMDE0LCB3YXMgYXNzZXNzZWQgYnkgbmV3IHRlc3RzIGFuZCBpbnRlcmltIGZyYW1ld29ya3MgZm9yIHRlYWNoZXIgYXNzZXNzbWVudC4gUmVzdWx0cyBmb3IgMjAxNiBhbmQgc3Vic2VxdWVudCB5ZWFycyBhcmUgbm8gbG9uZ2VyIHJlcG9ydGVkIGFzIGxldmVscywgZWFjaCBwdXBpbCByZWNlaXZlcyB0aGVpciB0ZXN0IHJlc3VsdHMgYXMgYSBzY2FsZWQgc2NvcmUgYW5kIHRlYWNoZXIgYXNzZXNzbWVudHMgYmFzZWQgb24gdGhlIHN0YW5kYXJkcyBpbiB0aGUgaW50ZXJpbSBmcmFtZXdvcmsuIFRoZSBpbnRlcmltIGFzc2Vzc21lbnQgY3JpdGVyaWEgcHJvdmlkZWQgYnkgdGhlIFN0YW5kYXJkcyBhbmQgVGVzdGluZyBBZ2VuY3kgaW5kaWNhdGVkIHRoYXQgYXNzZXNzbWVudCBzaG91bGQgYmUgYmFzZWQgb24gMTAwJSBhY2hpZXZlbWVudCBhbmQgbm90IGEg4oCYYmVzdCBmaXTigJkgbW9kZWwuIFdlc3QgU3Vzc2V4IGFwcGxpZWQgdGhpcyBhZHZpY2Ugcmlnb3JvdXNseS4gQmVjYXVzZSBvZiB0aGUgY2hhbmdlcyBkZXRhaWxlZCBhYm92ZSwgZmlndXJlcyBmb3IgMjAxNiBhbmQgMjAxNyBhcmUgbm90IGNvbXBhcmFibGUgdG8gdGhvc2UgZm9yIGVhcmxpZXIgeWVhcnMuIExldmVscyBhcmUgbm90IGNvbXBhcmFibGUgd2l0aCBzY2FsZWQgc2NvcmVzIG9yIHRlYWNoZXIgYXNzZXNzbWVudCBvdXRjb21lcy4gVGhlIGV4cGVjdGF0aW9ucyBmb3IgcHVwaWxzIGF0IHRoZSBlbmQgb2Yga2V5IHN0YWdlIDIgaGF2ZSBiZWVuIHJhaXNlZC5cXG5cXG4qKkRlY2VtYmVyIDIwMTcgVXBkYXRlOioqXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqRGVjZW1iZXIgMjAxNyBVcGRhdGU6KipcXG5cXG4tIC0gLVxcblxcbioqMjAxNi0yMDE3IFJlYWRpbmcsIFdyaXRpbmcgYW5kIE1hdGhzIChSV00pKipcXG5cXG5UaGUgbWFpbiBwdWJsaXNoZWQgaW5kaWNhdG9yIHJlbWFpbnMgUmVhZGluZywgV3JpdGluZyBhbmQgTWF0aHMgKFJXTSksIHRob3NlIHB1cGlscyB3aG8gcmVhY2ggb3IgZXhjZWVkIHRoZSBleHBlY3RlZCBzdGFuZGFyZCBpbiBhbGwgb2YgcmVhZGluZyB0ZXN0LCB3cml0aW5nIHRlYWNoZXIgYXNzZXNzbWVudCBhbmQgbWF0aHMgdGVzdC4gSW4gV2VzdCBTdXNzZXggNTUlIG9mIGFsbCBwdXBpbHMgcmVhY2hlZCB0aGF0IHN0YW5kYXJkIGNvbXBhcmVkIHRvIHRoZSBuYXRpb25hbCBhdmVyYWdlIG9mIDYyJS4gVGhlIFdlc3QgU3Vzc2V4IGF2ZXJhZ2UgaGFzIGluY3JlYXNlZCBtb3JlIHJhcGlkbHkgdGhhbiB0aGUgbmF0aW9uYWwgYW5kIHRoZSBnYXAgaGFzIG5vdyByZWR1Y2VkIGJ5IDIlIHRvIGp1c3QgNyUuIFRoZSBzYW1lIHBpY3R1cmUgaXMgcmVmbGVjdGVkIGFnYWluc3QgdGhlIFNvdXRoIEVhc3QsIHdoZXJlIHRoZSBpbmNyZWFzZSBpcyBvbmx5IDglLCB0aGUgZ2FwIGhhcyBub3cgcmVkdWNlZCBieSAyJSB0byBqdXN0IDglLlxcblxcbldoaWxzdCB0aGVyZSB3YXMgYSAxMCUgcG9pbnQgaW5jcmVhc2UgZnJvbSAyMDE2LCB0aGUgcmF0ZSBvZiBpbXByb3ZlbWVudCBuZWVkcyB0byBhY2NlbGVhcmF0ZSBzbyB0aGF0IHRoZSAyMDIyIHRhcmdldCBpcyByZWFjaGVkLiBXcml0aW5nIGFuZCBtYXRoZW1hdGljcyByZW1haW4gdGhlIGFyZWFzIG9mIGNvbmNlcm4uXFxuXFxuR3JlYXRlciBEZXB0aFxcblxcblVzaW5nIHRoZSBTdGFuZGFyZCBhbmQgVGVzdGluZyBBZ2VuY3nigJlzIGFzc2Vzc21lbnQgY3JpdGVyaWEsIHRoZSBleHBlY3RlZCBzdGFuZGFyZCBpbiB0aGUgdGVzdHMgaXMgYSBzY2FsZWQgc2NvcmUgb2YgMTAwIG9yIGFib3ZlLiBTb21lIHB1cGlscyB3aG8gYXR0YWluIHRoZSBleHBlY3RlZCBzdGFuZGFyZCBhcmUganVkZ2VkIHRvIGJlIOKAnHdvcmtpbmcgYXQgZ3JlYXRlciBkZXB0aCB3aXRoaW4gdGhlIGV4cGVjdGVkIHN0YW5kYXJk4oCdIChHRFMpLiBHRFMgaXMgdXNlZCBpbiB0aGUgY2hhcnRzIGJlbG93LCBidXQgaW4gc29tZSBwdWJsaWNhdGlvbnMgKGUuZy4gQVNQKSB0aGUgdGVybSDigJxIaWdoIFN0YW5kYXJk4oCdIGlzIHVzZWQgZm9yIHN1Y2ggcHVwaWxzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy83MjU2MjlCNy1BMTE4LTQ0MTYtQjRGNC05MUM4NEU2NTQ3NTFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipJbmRpdmlkdWFsIFN1YmplY3RzKipcXG5cXG5BdHRhaW5tZW50IGF0IHRoZSBleHBlY3RlZCBzdGFuZGFyZCBpbiB0aGUgdGVzdHMgaXMgaGlnaGVzdCBpbiBHUFMgKGdyYW1tYXIsIHB1bmN0dWF0aW9uIGFuZCBzcGVsbGluZykgYXQgNzQlIGNvbXBhcmVkIHRvIHRoZSBuYXRpb25hbCBhdmVyYWdlIG9mIDc4JSAoU291dGggRWFzdCA3NyUpLlxcblxcbkF0dGFpbm1lbnQgaXMgbG93ZXN0IGluIG1hdGhzIGF0IDcxJSBjb21wYXJlZCB0byB0aGUgbmF0aW9uYWwgYXZlcmFnZSBvZiA3NSUgKFNvdXRoIEVhc3QgYWxzbyA3NSUpLlxcblxcbkF0dGFpbm1lbnQgaW4gcmVhZGluZyBpcyBhdCA3MSUgY29tcGFyZWQgdG8gdGhlIG5hdGlvbmFsIGF2ZXJhZ2Ugb2YgNzIlIChTb3V0aCBFYXN0IDc0JSkuXFxuXFxuSW4gd3JpdGluZyA2OSUgb2YgcHVwaWxzIHdlcmUgYXNzZXNzZWQgYnkgdGVhY2hlcnMgYXMgd29ya2luZyBhdCB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQsIHRoaXMgd2FzIGxvd2VyIHRoYW4gaW4gYW55IG9mIHRoZSB0ZXN0IHN1YmplY3RzIGFuZCBjb21wYXJlcyB0byB0aGUgbmF0aW9uYWwgYXZlcmFnZSBvZiA3NyUgKFNvdXRoIEVhc3QgYWxzbyA3NyUpLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CNkQ0QzQzNC1FRjQzLTRCQTEtODZEOS1GQjkzNTc3QjU0QTVcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNTQ3MThCNDctODVBNy00MjFFLTkxOTItMkEwMjM4OTQwMEZCXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkFsdGhvdWdoIHNvbWUgZ2FpbnMgaGF2ZSBiZWVuIG1hZGUgYWdhaW5zdCBTdGF0aXN0aWNhbCBuZWlnaGJvdXJzLCBXZXN0IFN1c3NleCByZW1haW5zIGF0IHRoZSBsb3dlc3QgcmFuayBmb3IgNyBvZiB0aGUgMTEgaW5kaWNhdG9ycyBmb3IgQWxsIFB1cGlscy4gQm95cyBzaG93IHRoZSBtb3N0IGltcHJvdmVtZW50IGFnYWluc3QgU3RhdGlzdGljYWwgTmVpZ2hib3VycywgYWx0aG91Z2ggV2VzdCBTdXNzZXggcmVtYWlucyByYW5rZWQgMTAgb3IgMTEgb3V0IG9mIDExIGluIG1vcmUgdGhhbiBoYWxmIHRoZSAzMyBpbmRpY2F0b3JzIGFjcm9zcyBhbGwgZ2VuZGVycy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipDb21wYXJpc29uIHdpdGggb3RoZXIgTG9jYWwgQXV0aG9yaXRpZXMgKHJhbmtpbmdzKToqKlxcblxcbk5hdGlvbmFsL3N0YXRpc3RpY2FsIG5laWdoYm91cnM6IFdlc3QgU3Vzc2V4J3MgQWxsIFB1cGlscyBuYXRpb25hbCByYW5raW5ncyBmb3IgRXhwZWN0ZWQgU3RhbmRhcmQgaW4gTWF0aHMsIFJXTSwgR1BTIGFuZCBTY2llbmNlIGFsbCBzaG93IGltcHJvdmVtZW50LiBUaGVyZSBpcyBpbXByb3ZlbWVudCBmb3IgQWxsIFB1cGlscyBpbiBSV00gYXQgR3JlYXRlciBUaGFuIEV4cGVjdGVkIFN0YW5kYXJkIHRvbywgdGhvdWdoIGFsbCBvdGhlciBzdWJqZWN0cyBhcmUgZG93bi5cXG5cXG5HaXJscyBzaG93IGltcHJvdmVtZW50IGluIE1hdGhzIGF0IHRoZSBFeHBlY3RlZCBTdGFuZGFyZCBhbmQgZ3JlYXRlciB0aGFuIEV4cGVjdGVkIGFuZCBhdCB0aGUgZXhwZWN0ZWQgU3RhbmRhcmQgZm9yIEdQUyBhbmQgU2NpZW5jZS4gVGhlIEJveXMgc2hvdyB0aGUgbW9zdCBpbXByb3ZlbWVudCBpbiByYW5raW5ncyB3aXRoIDcgb2YgdGhlIDExIGluZGljYXRvcnMgdXAgb24gbGFzdCB5ZWFyLCB3aXRoIFNjaWVuY2Ugc2hvd2luZyBhbiBpbmNyZWFzZSBvZiAzNyBwbGFjZXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBHcmVhdGVyIFRoYW4gRXhwZWN0ZWQgUmVhZGluZywgV2VzdCBTdXNzZXggcmVtYWlucyBpbiB0aGUgbG93ZXIgaGFsZiBvZiByYW5raW5ncyBuYXRpb25hbGx5LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8zNUZFNzE5My1EM0M3LTQyOUQtODQyMS0yNjdCRDNFNUJGNERcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiU291dGggRWFzdDogV2VzdCBTdXNzZXjigJlzIHJhbmtpbmdzLCBhZ2FpbnN0IHRoZSAxOSBTb3V0aCBFYXN0IGdyb3VwIG9mIExvY2FsIEF1dGhvcml0aWVzLCBhcmU6XFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiBSV00gRVhTKyAoPTE4dGggb2YgMTkpXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzFFNkE4NDE1LUQ0NTktNDY3QS1BQzI4LUJBMkRDMkY1NUQ2NFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIgUmVhZGluZyBFWFMrID0gMTN0aCBvZiAxOVxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgMjAxNiBrZXkgc3RhZ2UgMiBhc3Nlc3NtZW50cyB3ZXJlIHRoZSBmaXJzdCB3aGljaCBhc3Nlc3MgdGhlIG5ldywgbW9yZSBjaGFsbGVuZ2luZyBuYXRpb25hbCBjdXJyaWN1bHVtIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIGluIDIwMTQuIE5ldyB0ZXN0cyBhbmQgaW50ZXJpbSBmcmFtZXdvcmtzIGZvciB0ZWFjaGVyIGFzc2Vzc21lbnQgaGF2ZSBiZWVuIGludHJvZHVjZWQgdG8gcmVmbGVjdCB0aGUgcmV2aXNlZCBjdXJyaWN1bHVtLiBSZXN1bHRzIGFyZSBubyBsb25nZXIgcmVwb3J0ZWQgYXMgbGV2ZWxzLCBhbmQgZWFjaCBwdXBpbCB3aWxsIG5vdyByZWNlaXZlIHRoZWlyIHRlc3QgcmVzdWx0cyBhcyBhIHNjYWxlZCBzY29yZSBhbmQgdGVhY2hlciBhc3Nlc3NtZW50cyBiYXNlZCBvbiB0aGUgc3RhbmRhcmRzIGluIHRoZSBpbnRlcmltIGZyYW1ld29yay4gVGhlIGV4cGVjdGVkIHN0YW5kYXJkIGhhcyBiZWVuIHJhaXNlZCBhbmQgdGhlIGFjY291bnRhYmlsaXR5IGZyYW1ld29yayBmb3Igc2Nob29scyBoYXMgYWxzbyBjaGFuZ2VkLiBUaGVzZSBjaGFuZ2VzIG1lYW4gdGhhdCB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgaXMgaGlnaGVyIGFuZCBub3QgY29tcGFyYWJsZSB3aXRoIHRoZSBleHBlY3RlZCBzdGFuZGFyZCB1c2VkIGluIHByZXZpb3VzIHllYXLigJlzIHN0YXRpc3RpY3MuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzM5RjE5M0UzLUY4RDAtNDM4OS1BQTE3LUQ2ODQzQkE2MDI2RlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXcml0aW5nIFRBIEVYUyA9ICgxOXRoIG9mIDE5KVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy85QkM4QkQzNC0xMjY4LTQwOTItODY3QS1FQTM1RDE4NUE5NEZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiTWF0aHMgRVhTKyAoPTE0dGggb2YgMTkpXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0NBNjYxOTRGLTE2QjEtNENDQS05MTc4LTcwMkY5MkNFNUM1MFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJhYSBcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSB0byB0aGUgZW5kIG9mIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqS2V5IFN0YWdlIDEqKiBwcm92aXNpb25hbCBvdXRjb21lcyBhcmUgbm93IGF2YWlsYWJsZSBhbmQgdGhlIGRhdGEgYmVsb3cgaGFzIGJlZW4gdXBkYXRlZC4gV2VzdCBTdXNzZXggcmVzdWx0cyBhcmUgc3RpbGwgYmVsb3cgdGhlIG5hdGlvbmFsIGF2ZXJhZ2UgYnV0IGltcHJvdmVkIGF0IGEgZmFzdGVyIHJhdGUgdGhhbiB0aGUgbmF0aW9uYWwgYXZlcmFnZSBhbmQsIHRoZXJlZm9yZSwgY2xvc2luZyB0aGUgZ2FwIHRvIHRoZSBuYXRpb25hbCBmaWd1cmUuXFxuXFxuKipLZXkgU3RhZ2UgMioqIHByb3Zpc2lvbmFsIG91dGNvbWVzIGNvbmZpcm0gdGhvc2UgcmVwb3J0ZWQgaW4gSnVseSAyMDE3LiBXZXN0IFN1c3NleCByZXN1bHRzIGFyZSBzdGlsbCBiZWxvdyB0aGUgbmF0aW9uYWwgYXZlcmFnZSBidXQgYXBhcnQgZnJvbSBpbiByZWFkaW5nICh3aGljaCBpcyBjbG9zZSB0byBuYXRpb25hbCBhdmVyYWdlKSBpbXByb3ZlZCBhdCBhIGZhc3RlciByYXRlIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2UgYW5kLCB0aGVyZWZvcmUsIGNsb3NpbmcgdGhlIGdhcC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSB0byB0aGUgZW5kIG9mIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4qKktleSBTdGFnZSAxKiogaXMgYW4gaW5kaWNhdG9yIG9mIHRoZSBjdXJyZW50IHBpY3R1cmUuIERhdGEgc2hvd24gaXMgcHJvdmlzaW9uYWwgaW50ZXJpbSBkYXRhLCBhcyBhIHZlcnkgc21hbGwgbnVtYmVyIG9mIHNjaG9vbHMgYXJlIHN0aWxsIHRvIHVwbG9hZCBkYXRhIHNldHMuIEl0IGlzIHVubGlrZWx5IGludGVyaW0gZGF0YSB3aWxsIHJhZGljYWxseSBjaGFuZ2Ugd2hlbiByZW1haW5pbmcgdXBsb2FkcyBoYXZlIGJlZW4gY29tcGxldGVkLlxcblxcbioqS2V5IFN0YWdlIDIqKiBkYXRhIHdhcyBhdmFpbGFibGUgZm9yIG5hdGlvbmFsIGRvd25sb2FkIGZyb20gdGhlIDR0aCBKdWx5IDIwMTcuIFRoZSBkYXRhIHNob3duIHJlcHJlc2VudHMgdGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIGFjaGlldmluZyB0aGUg4oCYZXhwZWN0ZWQgc3RhbmRhcmTigJkgYW5kIOKAmGdyZWF0ZXIgZGVwdGjigJkuIFRoZSBwcm9wb3J0aW9uIG9mIHB1cGlscyBhY2hpZXZpbmcg4oCYZ3JlYXRlciBkZXB0aOKAmSBhcyBhIHNlcGFyYXRlIG1lYXN1cmUgaXMgbm90IHlldCBhdmFpbGFibGUuIEFsbCBzY2hvb2xzIGFyZSBjdXJyZW50bHkgcmV2aWV3aW5nIHRoZWlyIGRhdGEgaW4gdGVybXMgb2YgdGhlIG51bWJlciBvZiBwdXBpbHMgZm9yIHdob20gdGhleSB3aWxsIGFwcGVhbCBhbmQgc2VlayBhIHJlY291bnQgLyByZW1hcmsuIFB1cGlscyB0eXBpY2FsbHkgcHV0IGZvcndhcmQgZm9yIHJlY291bnQgLyByZW1hcmsgYXJlIG5vIG1vcmUgdGhhbiAzIHBvaW50cyBiZWxvdyB0aHJlc2hvbGQgZm9yIGFjaGlldmluZyB0aGUg4oCYZXhwZWN0ZWQgc3RhbmRhcmTigJkuIEluIDIwMTYsIHRoaXMgcHJvY2VzcyBoYWQgYSsyJSBkaWZmZXJlbmNlIHRvIHRoZSBlYXJseSB1bnZhbGlkYXRlZCBkYXRhLiBOYXRpb25hbCBkYXRhIGhhcyBiZWVuIHRha2VuIGZyb20gdGhlIFN0YXRpc3RpY2FsIEZpcnN0IFJlbGVhc2UgKFNGUikgYXZhaWxhYmxlIG9uIHRoZSBEZkUgd2Vic2l0ZS5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMEIxMDFDNjgtMTU5Mi00M0I1LTgyQzQtMTQ1RjZDQTI0NDhGXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzQ3Qzk4MTZGLUZERTktNDgxNC05NTc3LTU2MzA0RjJCNDIwM1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSByZXZpc2VkIEtleSBTdGFnZSAyIHJlc3VsdHMgaGF2ZSBiZWVuIHJlbGVhc2VkLCBhbmQgZm9yIFdlc3QgU3Vzc2V4IDQ1JSBvZiBwdXBpbHMgYWNoaWV2aW5nIHRoZSBleHBlY3RlZCBzdGFuZGFyZCBpbiByZWFkaW5nLCB3cml0aW5nIGFuZCBtYXRoZW1hdGljcyAoY29tYmluZWQpIHdoaWNoIGlzIHJhbmsgMzMgYWdhaW5zdCAzNCBTaGlyZSBQbHVzIGNvdW50aWVzLiBUaGVzZSByZXN1bHRzIGFyZSBmcm9tIG5ldyB0ZXN0cyBhbmQgdGVhY2hlciBhc3Nlc3NtZW50IG9mIHRoZSBuZXcgbmF0aW9uYWwgQ3VycmljdWx1bSBhbmQgYXJlIG5vdCBkaXJlY3RseSBjb21wYXJhYmxlIHdpdGggcHJldmlvdXMgbWVhc3VyZXMuIFRoZXNlIHJlc3VsdHMgYXJlIGRpc2FwcG9pbnRpbmcuXFxuXFxuU2Nob29sIGltcHJvdmVtZW50LCB3b3JraW5nIHdpdGggc2Nob29scywgaGF2ZSBwcm9kdWNlZCBhIHByb2dyYW1tZSBvZiBzdXBwb3J0IGFuZCB0cmFpbmluZyB0byBpbXByb3ZlIG91dGNvbWVzIGF0IEtleSBTdGFnZSAxIGFzIHdlbGwgYXMgS2V5IFN0YWdlIDIuIFdlc3QgU3Vzc2V4IG9mZmljZXJzIGFyZSB3b3JraW5nIHdpdGggc2Nob29scyBvbiB0aGlzIGFjdGlvbiBwbGFuIHRvIGltcHJvdmUgS2V5IFN0YWdlIDIgb3V0Y29tZXMgaW4gMjAxNy5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIlB1cGlscyBhY2hpZXZpbmcgdGhlIGV4cGVjdGVkIHN0YW5kYXJkIG9mIGRldmVsb3BtZW50IGF0IHRoZSBlbmQgb2YgS2V5IFN0YWdlIDJcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgcHVwaWwgYWNoaWV2ZW1lbnQgYXQgS2V5IFN0YWdlIDIuICBJdCBpcyBvdXIgYW1iaXRpb24gdG8gYmUgYXMgZ29vZCBhcyB0aGUgdG9wIDI1JSBvZiBoaWdoZXN0IHBlcmZvcm1pbmcgY291bnRpZXMgaW4gdGhlIGNvdW50cnkgYnkgMjAxOS5cIixcImljb25cIjpcInRleHRcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNi0wOS0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0Ijo2MywidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6ODQsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoicHB5bS10bXY5In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjo4LFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIixcIm1haW50YWluX3R5cGVcIjpcIj5cIixcInRhcmdldF90eXBlXCI6XCJhYnNvbHV0ZVwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fX0sXCJzdGFydFwiOlwiMjAxNC0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNC0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCIsXCJkYXRhc2V0XCI6XCJpZGs2LWRhaWVcIn0sXCJ0eXBlXCI6XCJzY3JhdGNoXCJ9LFwibmFtZVwiOlwiUGVyY2VudGFnZSBvZiBhdXRob3JpdHkgZm9yIHB1cGlsIGF0dGFpbm1lbnQgYXQgS2V5IFN0YWdlIDJcIixcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOnRydWUsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiYmFkXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTAzLTIxVDExOjU2OjM2LjYwN1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDozMjowMi4wOTJaIiwidmVyc2lvbiI6IjIwMTgtMDMtMjFUMTE6NTY6MzYuNjA3WiIsInRhcmdldF90b2xlcmFuY2UiOjYsImlkIjoiajVpYi01dXBwIn0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJqc3U4LTducmgifSx7Im1ldGFkYXRhIjoiIiwiaWQiOiJkN3N2LXRiODkifV0sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTU6NTg6MDUuNTA4WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjMyOjAyLjE4MloiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxNTo1ODowNS41MDhaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJoeGdhLWVjZ3oiLCJuYW1lIjoiS2V5IFN0YWdlIDQgUHJvZ3Jlc3MgOCBzY29yZSAwLjAzIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJjb21wb3NlXCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSB0byB0aGUgZW5kIG9mIERlY2VtYmVyIDIwMTcqKlxcblxcbkluIDIwMTYgdGhlIGhlYWRsaW5lIG1lYXN1cmUgZm9yIEtleSBTdGFnZSA0IHJlc3VsdHMgKEdDU0UpIGhhcyBjaGFuZ2VkIHRvIFByb2dyZXNzIDgsIGEgbWVhc3VyZSBvZiB0aGUgcHJvZ3Jlc3MgcHVwaWxzIG1ha2UgZnJvbSBLZXkgU3RhZ2UgMiAocHJpbWFyeSBzY2hvb2wgWWVhciA2KSB0byBLZXkgU3RhZ2UgNCAoc2Vjb25kYXJ5IHNjaG9vbCBZZWFyIDExKSBpbiBhIHJhbmdlIG9mIHN1YmplY3RzIGluY2x1ZGluZyBFbmdsaXNoLCBNYXRoZW1hdGljcywgYXQgbGVhc3QgMyBFbmdsaXNoIEJhY2NhbGF1cmVhdGUgc3ViamVjdHMgYW5kIHVwIHRvIHRocmVlIG90aGVyIGdvb2QgR0NTRSBzdWJqZWN0cy4gRnVydGhlciBpbmZvcm1hdGlvbiBpcyBoZWxkIHVuZGVyOltodHRwczovL3d3dy5nb3YudWsvZ292ZXJubWVudC9wdWJsaWNhdGlvbnMvcHJvZ3Jlc3MtOC1zY2hvb2wtcGVyZm9ybWFuY2UtbWVhc3VyZV1bMF1cXG5cXG5Gb3IgMjAxNi8xNywgV2VzdCBTdXNzZXgncyBhdmVyYWdlIFByb2dyZXNzIDggc2NvcmUgaXMgMC4wMywgd2hpY2ggaXMgYmV0dGVyIHRoYW4gYm90aCB0aGUgd2hvbGUgb2YgRW5nbGFuZCAoLTAuMDMpIGFuZCB0aGUgU291dGggRWFzdCAoLTAuMDIpLiBXZXN0IFN1c3NleCBpcyBjdXJyZW50bHkgcmFua2VkPTUwdGgsIGFuZCBpcyBpbiB0aGUgc2Vjb25kIHF1YXJ0aWxlLCBpbiByZWxhdGlvbiB0byBhbGwgbG9jYWwgYXV0aG9yaXRpZXMuXFxuXFxuQkFTSUNTOiBBcyBhcGVyY2VudGFnZSBvZiBhbGwgcHVwaWxzIGF0IHRoZSBlbmQgb2Yga2V5IHN0YWdlIDQuIEluIDIwMTQvMTUgYW5kIGVhcmxpZXIsIHdoZXJlIHRoZSBFbmdsaXNoIGxhbmd1YWdlIGFuZCBFbmdsaXNoIGxpdGVyYXR1cmUgb3B0aW9uIHdhcyBjaG9zZW4gaW4gRW5nbGlzaCwgZXhhbXMgaW4gYm90aCBtdXN0IGJlIHRha2VuIGFuZCBhIEMgZ3JhZGUgb3IgYWJvdmUgYWNoaWV2ZWQgaW4gRW5nbGlzaCBsYW5ndWFnZS4gRnJvbSAyMDE1LzE2LCB0byBtZWV0IHRoZSBFbmdsaXNoIHJlcXVpcmVtZW50IG9mIHRoZSBBKi1DIGluIEVuZ2xpc2ggYW5kIG1hdGhzIGF0dGFpbm1lbnQgbWVhc3VyZSwgYSBDIGluIGVpdGhlciBFbmdsaXNoIGxhbmd1YWdlIG9yIEVuZ2xpc2ggbGl0ZXJhdHVyZSBjb3VudHMgYW5kIHRoZXJlIGlzIG5vIHJlcXVpcmVtZW50IHRvIHRha2UgYm90aC5cXG5cXG5JbiAyMDE2LzE3LCBmb2xsb3dpbmcgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgcmVmb3JtZWQgOSB0byAxIEdDU0VzIGluIEVuZ2xpc2gsIGEgZ3JhZGUgNW9yIGFib3ZlIGluIGVpdGhlciBFbmdsaXNoIGxhbmd1YWdlIG9yIEVuZ2xpc2ggbGl0ZXJhdHVyZSBjb3VudHMgYW5kIHRoZXJlIHJlbWFpbnMgbm8gcmVxdWlyZW1lbnQgdG8gdGFrZSBib3RoIGluIG9yZGVyIHRvIGFjaGlldmUgYSBwYXNzLiBGb3IgMjAxNi8xNyBXZXN0IFN1c3NleCdzIHBlcmNlbnRhZ2Ugd2FzIDQ0LjglLCBjb21wYXJlZCB0byA0Mi40JSBmb3IgRW5nbGFuZCBhbmQgNDUuNCUgZm9yIHRoZSBTb3V0aCBFYXN0LlxcblxcbkVOR0xJU0ggQkFDQ0FMQVVSRUFURTogQXMgYSBwZXJjZW50YWdlIG9mIHB1cGlscyBhdCB0aGUgZW5kIG9mIGtleSBzdGFnZSA0LiBJbiAyMDE0LzE1IGFuZCBlYXJsaWVyLCB3aGVyZSB0aGUgRW5nbGlzaCBsYW5ndWFnZSBhbmQgRW5nbGlzaCBsaXRlcmF0dXJlIG9wdGlvbiB3YXMgY2hvc2VuIGluIEVCYWNjIEVuZ2xpc2gsIGV4YW1zIGluIGJvdGggaGFkIHRvIGJlIHRha2VuIGFuZCBhIEMgZ3JhZGUgb3IgYWJvdmUgYWNoaWV2ZWQgaW4gRW5nbGlzaCBsYW5ndWFnZS4gSW4gMjAxNS8xNiwgdG8gbWVldCB0aGUgRW5nbGlzaCByZXF1aXJlbWVudCBvZiB0aGUgRUJhY2MsIGV4YW1zIGluIGJvdGggaGFkIHRvIGJlIHRha2VuIGFuZCBhIEMgZ3JhZGUgb3IgYWJvdmUgYWNoaWV2ZWQgaW4gZWl0aGVyIEVuZ2xpc2ggbGFuZ3VhZ2Ugb3IgRW5nbGlzaCBsaXRlcmF0dXJlLiBGcm9tIDIwMTcsIHRoZSBkZWZpbml0aW9uIG9mICdwZXJjZW50YWdlIGFjaGlldmluZyB0aGUgRW5nbGlzaCBCYWNjYWxhdXJlYXRlJyBoYXMgY2hhbmdlZCB0byAndGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIGFjaGlldmluZyB0aGUgRUJhY2Mgd2hpY2ggaW5jbHVkZXMgYSBncmFkZSA1IG9yIGFib3ZlIGluIEVuZ2xpc2ggYW5kbWF0aGVtYXRpY3MsIGFuZCBncmFkZSBDIG9yIGFib3ZlIGluIHVucmVmb3JtZWQgc3ViamVjdHMnIGZvbGxvd2luZyB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSByZWZvcm1lZCA5IHRvIDEgR0NTRXMgaW4gRW5nbGlzaCBhbmQgbWF0aGVtYXRpY3MuXFxuXFxuRXhhbXMgaW4gYm90aCBFbmdsaXNoIGxpdGVyYXR1cmUgYW5kIEVuZ2xpc2ggbGFuZ3VhZ2Ugc3RpbGwgaGF2ZSB0byBiZSB0YWtlbiBhbmQgYSBncmFkZSA1IG9yIGFib3ZlIGFjaGlldmVkIGluIG9uZSB0byBhY2hpZXZlIGEgcGFzcyBpbiB0aGUgRW5nbGlzaCByZXF1aXJlbWVudCBvZiB0aGUgRUJhY2MuIFRoZSA5LTQgcGFzcyBzaG93cyBwdXBpbHMgd2hvIGFjaGlldmVkIGEgZ3JhZGUgNCBvciBhYm92ZSBpbiBFbmdsaXNoIGFuZG1hdGhlbWF0aWNzLCBhbmQgYSBncmFkZSBDIGluIHVucmVmb3JtZWQgc3ViamVjdHMgYW5kIGlzIHNob3duIGFsb25nc2lkZSB0aGUgaGVhZGxpbmUgbWVhc3VyZSBmb3IgdHJhbnNwYXJlbmN5IGFuZCBjb21wYXJhYmlsaXR5LkZvciAyMDE2LzE3IFdlc3QgU3Vzc2V4J3MgcGVyY2VudGFnZSB3YXMgMjEuMCUsIGNvbXBhcmVkIHRvIDIxLjIlIGZvciBFbmdsYW5kIGFuZCAyMy42JSBmb3IgdGhlU291dGggRWFzdC5cXG5cXG5SZXZpc2VkIGRhdGEgaXNyZWxlYXNlZCBhdCB0aGUgZW5kIG9mIEphbnVhcnkgMjAxOC5cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lmdvdi51ay9nb3Zlcm5tZW50L3B1YmxpY2F0aW9ucy9wcm9ncmVzcy04LXNjaG9vbC1wZXJmb3JtYW5jZS1tZWFzdXJlXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIOKAkyB0byB0aGUgZW5kIG9mIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5BcyB0aGUgY3VycmVudCByZXN1bHRzIGFyZSBiYXNlZCBvbiBhbm51YWwgZXhhbWluYXRpb25zIHNhdCBpbiBKdW5lIDIwMTYgdGhlIG91dGNvbWVzIG9ubHkgY2hhbmdlIG1hcmdpbmFsbHkgdGhyb3VnaG91dCB0aGUgeWVhci4gVmFsaWRhdGVkIHJlc3VsdHMgd2VyZSBwdWJsaXNoZWQgaW4gSmFudWFyeSAyMDE3LiBUaGUgcmVzdWx0cyBmb3IgdGhlIGV4YW1pbmF0aW9ucyBzYXQgaW4gSnVuZSAyMDE3IHdpbGwgYmUgcmVwb3J0ZWQgd2hlbiB0aGV5IGJlY29tZSBhdmFpbGFibGUgaW4gdGhlIGF1dHVtbi5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQg4oCTIHRvIHRoZSBlbmQgb2YgTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5PbiB0aGUgbmV3IG1lYXN1cmUsIFByb2dyZXNzIDgsIFdlc3QgU3Vzc2V44oCZcyBvdXRjb21lIGlzIHdlbGwgYWJvdmUgdGhlIG5hdGlvbmFsIGF2ZXJhZ2UgYXQgKzAuMSAobmF0aW9uYWwgYXZlcmFnZSDigJMwLjAzKSBpcyByYW5rZWQgM3JkIG9mIHRoZSAzNCBTaGlyZSBwbHVzIGNvdW50aWVzIGFuZCBpbiB0aGUgdG9wIDIwJSBvZiBhbGwgbG9jYWwgYXV0aG9yaXRpZXMuIFdlc3QgU3Vzc2V4IGlzIGFsc28gYWJvdmUgdGhlIG5hdGlvbmFsIGF2ZXJhZ2UgZm9yIG90aGVyIHJlcG9ydGVkIG91dGNvbWVzOiBBdHRhaW5tZW50IDgsIEVuZ2xpc2ggQmFjY2FsYXVyZWF0ZSBhbmQgQmFzaWNzIChBKi1DIGluIGJvdGggRW5nbGlzaCBhbmQgbWF0aGVtYXRpY3MpLlxcblxcblwifV0sXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvMEI1MTJDMDQtN0Y0Ni00MTc5LUI4REEtQkUxNTM3RThEQTA1XCIsXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW5jcmVhc2UgS2V5IFN0YWdlIDQgUHJvZ3Jlc3MgOCBzY29yZSB0byBiZSBpbiB0aGUgdG9wIHF1YXJ0aWxlIG9mIGFsbCBMb2NhbCBBdXRob3JpdGllcyBieSAyMDIyXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTYtMDktMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiIHNjb3JlICIsInRhcmdldCI6MC4wNywidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJxNGR0LXdiaGoifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjgsXCJ5ZWFyXCI6MjAxNn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fX0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTd9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxN319LFwic3RhcnRcIjpcIjIwMTctMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTctMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJLZXkgU3RhZ2UgNCBQcm9ncmVzcyA4IHNjb3JlXCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjp0cnVlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcIndpdGhpbl90b2xlcmFuY2VcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTM6NDA6NDQuOTQzWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI5VDExOjIxOjQzLjk0MloiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxMzo0MDo0NC45NDNaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MC4wNCwiaWQiOiJpYXhlLW1hbmEifSwicmVsYXRlZF9tZWFzdXJlcyI6W3sibWV0YWRhdGEiOiIiLCJpZCI6ImQyeW4ta3draSJ9XSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMVQxMzo0MDo1MS43ODFaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjlUMTE6MjE6NDQuMDQzWiIsInZlcnNpb24iOiIyMDE4LTA0LTExVDEzOjQwOjUxLjc4MVoiLCJjcmVhdGVkX2J5IjoiM2Rwdi1qcjhtIn0seyJpZCI6Ijl1eWQtY3J1aSIsIm5hbWUiOiJQdXBpbHMgYXQgc2Nob29scyBHb29kIG9yIE91dHN0YW5kaW5nIGluIFcuIFN1c3NleCBhcyBqdWRnZWQgYnkgT2ZzdGVkIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJ0ZXh0XCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipPdmVydmlldyoqXFxuXFxuVW5kZXJzdGFuZGluZyBPZnN0ZWQgcmVwb3J0c1xcblxcbk9mc3RlZCAoT2ZmaWNlIGZvciBTdGFuZGFyZHMgaW4gRWR1Y2F0aW9uLCBDaGlsZHJlbuKAmXMgU2VydmljZXMgYW5kIFNraWxscykgaXMgYSBnb3Zlcm5tZW50IGRlcGFydG1lbnQgdGhhdCBpbnNwZWN0cyBhbmQgcmVndWxhdGVzIGVkdWNhdGlvbmFsIGluc3RpdHV0aW9ucy4gQWxsIHNjaG9vbHMgYXJlIGluc3BlY3RlZCBhcyBwYXJ0IG9mIGEgY3ljbGUgb2YgaW5zcGVjdGlvbiB3aXRoIGluYWRlcXVhdGUgYW5kIFJJIChSZXF1aXJlcyBJbXByb3ZlbWVudCkgc2Nob29scyBiZWluZyBpbnNwZWN0ZWQgd2l0aGluIHR3byB5ZWFycyBhbmQgZ29vZCBzY2hvb2xzIGV2ZXJ5IHRocmVlIHllYXJzLiBPdXRzdGFuZGluZyBzY2hvb2xzIGFyZSBub3Qgcm91dGluZWx5IGluc3BlY3RlZC5cXG5cXG5BZnRlciB0aGUgaW5zcGVjdGlvbiwgT2ZzdGVkIHB1Ymxpc2hlcyBhIHB1YmxpYyByZXBvcnQgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBvbiB0aGUgc2Nob29s4oCZcyBwZXJmb3JtYW5jZS5JbnNwZWN0b3JzIG1ha2Uga2V5IGp1ZGdlbWVudHMgb24gdGhlIGZvbGxvd2luZyBhcmVhczpcXG5cXG4qIG92ZXJhbGwgZWZmZWN0aXZlbmVzc1xcbiogZWZmZWN0aXZlbmVzcyBvZiBsZWFkZXJzaGlwIGFuZCBtYW5hZ2VtZW50XFxuKiBxdWFsaXR5IG9mIHRlYWNoaW5nLCBsZWFybmluZyBhbmQgYXNzZXNzbWVudFxcbiogcGVyc29uYWwgZGV2ZWxvcG1lbnQsIGJlaGF2aW91ciBhbmQgd2VsZmFyZVxcbiogb3V0Y29tZXMgZm9yIHB1cGlsc1xcblxcbkp1ZGdlbWVudHMgYXJlIG1hZGUgdXNpbmcgYSBmb3VyLXBvaW50IHNjYWxlOlxcblxcbiogZ3JhZGUgMSAtIE91dHN0YW5kaW5nXFxuKiBncmFkZSAyIC0gR29vZFxcbiogZ3JhZGUgMyAtIFJlcXVpcmVzIEltcHJvdmVtZW50XFxuKiBncmFkZSA0IOKAkyBJbmFkZXF1YXRlXFxuXFxuSW4ganVkZ2luZyBvdmVyYWxsIGVmZmVjdGl2ZW5lc3MsIGluc3BlY3RvcnMgd2lsbCB0YWtlIGFjY291bnQgb2YgdGhlIGZvdXIga2V5IGp1ZGdlbWVudHMuIEluc3BlY3RvcnMgc2hvdWxkIGZpcnN0IG1ha2UgdGhlIGtleSBqdWRnZW1lbnRzIG9uOlxcblxcbiogdGhlIHF1YWxpdHkgb2YgdGVhY2hpbmcsIGxlYXJuaW5nIGFuZCBhc3Nlc3NtZW50XFxuKiBwZXJzb25hbCBkZXZlbG9wbWVudCwgYmVoYXZpb3VyIGFuZCB3ZWxmYXJlXFxuKiBvdXRjb21lcyBmb3IgcHVwaWxzXFxuXFxuVGhlIExvY2FsIEF1dGhvcml0eSBpcyBjb21taXR0ZWQgdG8gZW5zdXJpbmcgdGhhdCBhbGwgcHVwaWxzIGluIHRoZSBjb3VudHkgYXR0ZW5kIGEgc2Nob29sIGp1ZGdlZCB0byBiZSBhdCBsZWFzdCBnb29kIG9yIG91dHN0YW5kaW5nLiBUaGUgRGlyZWN0b3JhdGUgb2YgRWR1Y2F0aW9uIGFuZCBTa2lsbHMgd29ya3MgaW4gcGFydG5lcnNoaXAgd2l0aCBhbGwgc2Nob29scyBhbmQgc3Rha2Vob2xkZXJzIHRvIGVuc3VyZSB0aGlzIGlzIGFjaGlldmVkLiBJdCBjb250aW51ZXMgdG8gdGFyZ2V0IHVuZGVyIHBlcmZvcm1pbmcgc2Nob29scyBieSBwcm92aWRpbmcgY2hhbGxlbmdlIGFuZCBzdXBwb3J0IHRvIHNlY3VyZSByYXBpZCBhbmQgc3VzdGFpbmFibGUgaW1wcm92ZW1lbnRzIGFuZCByYWlzZSBzdGFuZGFyZHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBMb2NhbCBBdXRob3JpdHkgaXMgY29tbWl0dGVkIHRvIGVuc3VyaW5nIHRoYXQgYWxsIHB1cGlscyBpbiB0aGUgY291bnR5IGF0dGVuZCBhIGdvb2Qgb3Igb3V0c3RhbmRpbmcgc2Nob29sIGFuZCB0aGUgRWR1Y2F0aW9uIGFuZCBTa2lsbHMgc2VydmljZSBpcyB3b3JraW5nIHdpdGggc2Nob29scyBhbmQgcGFydG5lcnMgdG93YXJkcyB0aGlzIG91dGNvbWUuIFdoZXJlIGl0IGlzIGNvbnNpZGVyZWQgdGhhdCBhIHNjaG9vbCBpcyB1bmRlcnBlcmZvcm1pbmcsIG9yIGF0IHJpc2sgb2YgdW5kZXJwZXJmb3JtaW5nLCBpdCBjb250aW51ZXMgdG8gdGFyZ2V0IHRoZXNlIHNjaG9vbHMsIGFuZCB3aWxsIHdvcmsgYWxvbmdzaWRlIHRoZSBzY2hvb2wgdG8gZWl0aGVyIGltcHJvdmUgdGhlaXIgcmF0aW5nIGF0IHRoZSBuZXh0IGluc3BlY3Rpb24sIG9yIHRvIGhlbHAgdGhlbSB0byBlbnN1cmUgdGhhdCB0aGV5IHJlbWFpbiBnb29kLiBUaGUgRWR1Y2F0aW9uIGFuZCBTa2lsbHMgc2VydmljZSBoYXMgYSBwb3NpdGl2ZSB0cmFjayByZWNvcmQgb2Ygc3VwcG9ydGluZyB0aGVzZSBzY2hvb2xzLlxcblxcblNjaG9vbCBwZXJmb3JtYW5jZSBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgd2hvIGF0dGVuZCBnb29kIG9yIG91dHN0YW5kaW5nIHNjaG9vbHMgYXQgdGhlIHNjaG9vbHPigJkgbGFzdCBpbnNwZWN0aW9uLlxcblxcbkFsbCBzY2hvb2xzIGFyZSBpbnNwZWN0ZWQgYXMgcGFydCBvZiBhIGN5Y2xlIG9mIGluc3BlY3Rpb24gd2l0aCBpbmFkZXF1YXRlIGFuZCBSSSAoUmVxdWlyZXMgSW1wcm92ZW1lbnQpIHNjaG9vbHMgYmVpbmcgaW5zcGVjdGVkIHdpdGhpbiB0d28geWVhcnMgYW5kIGdvb2Qgc2Nob29scyBldmVyeSB0aHJlZSB5ZWFycy4gT3V0c3RhbmRpbmcgc2Nob29scyBhcmUgbm90IHJvdXRpbmVseSBpbnNwZWN0ZWQuXFxuXFxuICBcXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipQZXJmb3JtYW5jZSBvZiBXZXN0IFN1c3NleCBTY2hvb2xzIC0gRGVjZW1iZXIgMjAxNyoqXFxuXFxuVGhlIHRvdGFsIGZvciBwdXBpbHMgYXR0ZW5kaW5nIFdlc3QgU3Vzc2V4IHNjaG9vbHMgdGhhdCBhcmUganVkZ2VkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgaGFzIGluY3JlYXNlZCB0byBhIDE2LW1vbnRoIGhpZ2ggb2YgODQuMiUuIFRoZSBpbmNyZWFzZSBmcm9tIFNlcHRlbWJlciAyMDE2IHRvIERlY2VtYmVyIDIwMTcgaXMgMy4yJS5cXG5cXG5Gb3IgRGVjZW1iZXIsIHRoZSBwZXJjZW50YWdlIGZvciBlYWNoIHNjaG9vbCBwaGFzZSBpcyBhcyBmb2xsb3dzOlxcblxcbiogwrcgUHJpbWFyeSBTY2hvb2wgcHVwaWxzID0gODMlXFxuKiDCtyBTZWNvbmRhcnkgU2Nob29sIHB1cGlscyA9IDg1JVxcbiogwrcgU3BlY2lhbCBTY2hvb2wgcHVwaWxzID0gOTYlXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUGVyZm9ybWFuY2Ugb2YgV2VzdCBTdXNzZXggU2Nob29scyAtIE5vdmVtYmVyIDIwMTcqKlxcblxcblRoZSB0b3RhbCBmb3IgcHVwaWxzIGF0dGVuZGluZyBXZXN0IFN1c3NleCBzY2hvb2xzIHRoYXQgYXJlIGp1ZGdlZCBnb29kIG9yIG91dHN0YW5kaW5nIGhhcyByZW1haW5lZCBzdGVhZHkgdGhpcyBtb250aCBhdCBhcm91bmQgODQlLiBGb3IgTm92ZW1iZXIsIHRoZSBwZXJjZW50YWdlIGZvciBlYWNoIHNjaG9vbCBwaGFzZSBpcyBhcyBmb2xsb3dzOlxcblxcbiogwrcgUHJpbWFyeSBTY2hvb2wgcHVwaWxzID0gODIlXFxuKiDCtyBTZWNvbmRhcnkgU2Nob29sIHB1cGlscyA9IDg1JVxcbiogwrcgU3BlY2lhbCBTY2hvb2wgcHVwaWxzID0gMTAwJVxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlBlcmZvcm1hbmNlIG9mIFdlc3QgU3Vzc2V4IFNjaG9vbHMgLSBPY3RvYmVyIDIwMTcqKlxcblxcblBlcmZvcm1hbmNlIGlzIG1lYXN1cmVkIG1vbnRobHkgYmFzZWQgb24gdGhlIHB1Ymxpc2hlZCBvdXRjb21lcyBvZiBPZnN0ZWQgaW5zcGVjdGlvbnMgb2YgV2VzdCBTdXNzZXggc2Nob29scyBpbmNsdWRpbmcgYWNhZGVtaWVzIGFuZCBmcmVlIHNjaG9vbHMuXFxuXFxuT3VyIGFtYml0aW9uIGlzIHRvIGJlIGluIHRoZSB0b3AgMjUlIG9mIGNvdW50aWVzIG5hdGlvbmFsbHkuXFxuXFxuU2luY2UgQXByaWwgMjAxNSB0aGUgcGVyY2VudGFnZSBvZiBzY2hvb2xzIGp1ZGdlZCB0byBiZSBnb29kIG9yIG91dHN0YW5kaW5nIGhhcyBnZW5lcmFsbHkgaW1wcm92ZWQgbW9udGgtb24tbW9udGggZnJvbSA3NSUgdG8gODQlIGluIE9jdG9iZXIgMjAxNy5cXG5cXG5UaGUgV2VzdCBTdXNzZXggU3RyYXRlZ3kgZm9yIFNjaG9vbCBJbXByb3ZlbWVudCwgaW50cm9kdWNlZCBpbiBBcHJpbCAyMDE2LCBoYXMgY29udHJpYnV0ZWQgdG8gaW5jcmVhc2luZyB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgdGF1Z2h0IGluIFdlc3QgU3Vzc2V4IHNjaG9vbHMgdGhhdCBhcmUganVkZ2VkIGFzIGdvb2Qgb3Igb3V0c3RhbmRpbmcuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0M3QzMzNUQ5LTBERDgtNDEwMy05OUVBLUQ0MzFDODMxQzMwRVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkJldHdlZW4gSnVuZSBhbmQgU2VwdGVtYmVyIDIwMTcgdGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIGluIGdvb2QgYW5kIG91dHN0YW5kaW5nIHNjaG9vbHMgaW1wcm92ZWQgYnkgMSUuIFRoZSBpbmNyZWFzZSBpcyBsYXJnZWx5IHRoZSByZXN1bHQgb2YgaW5zcGVjdGlvbiB0aGF0IHRvb2sgcGxhY2UgaW4gSnVseSBhcyBubyBpbnNwZWN0aW9ucyB0b29rIHBsYWNlIGR1cmluZyBBdWd1c3QgYW5kIHRoZSByZXBvcnRzIG9uIHRob3NlIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBpbiBTZXB0ZW1iZXIgaGF2ZSB5ZXQgdG8gYmUgcHVibGlzaGVkLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5DaGFuZ2VzIGluIHRoZSBwcm9wb3J0aW9uIG9mIHB1cGlscyBhdHRlbmRpbmcgZ29vZCBhbmQgb3V0c3RhbmRpbmcgc2Nob29scyBhcmUgZGVwZW5kZW50IHRoZSBudW1iZXIgb2YgcHVwaWxzIGluIHNjaG9vbHMgdGhhdCBhcmUgaW5zcGVjdGVkIGFuZCBtb3ZlIGludG8gZ29vZCBvciBvdXRzdGFuZGluZyBjYXRlZ29yaWVzIGZyb20gUmVxdWlyZXMgSW1wcm92ZW1lbnQgb3IgSW5hZGVxdWF0ZS4gSW4gSnVuZSAyMDE3IHRoZSBpbmNyZWFzZSBpbiB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgYXR0ZW5kaW5nIGdvb2Qgb3IgYmV0dGVyIHNjaG9vbHMgd2FzIDElLiBJbiBXZXN0IFN1c3NleCBvdXIgdG90YWwgcHVwaWwgcG9wdWxhdGlvbiBpcyBjaXJjYSAxMTIsMDAwLiBUaGlzIG1lYW5zIHRoYXQgc2Nob29scyBpbnNwZWN0ZWQgYnkgT2ZzdGVkLCB3aXRoIHNtYWxsIG51bWJlcnMgb2YgcHVwaWxzLCB3aG8gbW92ZSBpbnRvIHRoZSBnb29kIG9yIG91dHN0YW5kaW5nIGNhdGVnb3JpZXMgbWFrZSBsaXR0bGUgZGlmZmVyZW5jZSB0byB0aGUgb3ZlcmFsbCBwcm9wb3J0aW9uIG9mIHB1cGlscyB0YXVnaHQgaW4gZ29vZCBvciBiZXR0ZXIgc2Nob29scy4gQXBwcm94LiAxLDEyMCBwdXBpbHMgYXJlIHJlcXVpcmVkIHRvIGJlIHRhdWdodCBpbiBzY2hvb2xzIHRoYXQgUmVxdWlyZXMgSW1wcm92ZW1lbnQgb3IgSW5hZGVxdWF0ZSB0byBiZSBpbnNwZWN0ZWQgYXMgZ29vZCBvciBvdXRzdGFuZGluZyB0byBtYWtlIGEgMSUgZGlmZmVyZW5jZSB0aGlzIHJlcHJlc2VudHMgdGhlIHB1cGlscyBwb3B1bGF0aW9uIGluIGFwcHJveC4gMSBtZWRpdW0gc2l6ZWQgc2Vjb25kYXJ5IHNjaG9vbCBhbmQgMiBwcmltYXJ5IHNjaG9vbHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuUGVyZm9ybWFuY2UgaXMgbWVhc3VyZWQgbW9udGhseSBiYXNlZCBvbiB0aGUgcHVibGlzaGVkIG91dGNvbWVzIG9mIE9mc3RlZCBpbnNwZWN0aW9ucyBvZiBXZXN0IFN1c3NleCBzY2hvb2xzIGluY2x1ZGluZyBhY2FkZW1pZXMgYW5kIGZyZWUgc2Nob29scy4gVGhlIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgcHVwaWxzIGF0dGVuZGluZyBnb29kIGFuZCBvdXRzdGFuZGluZyBzY2hvb2xzLiBPdXIgYW1iaXRpb24gaXMgdG8gYmUgb25lIG9mIHRoZSB0b3AgMjUlIG9mIGhpZ2hlc3QgcGVyZm9ybWluZyBjb3VudGllcy5cXG5cXG5TaW5jZSBNYXJjaCAyMDE2IHRoZSBwZXJjZW50YWdlIGhhcyBpbXByb3ZlZCBmcm9tIDc5JSBhbmQgZm9yIGEgcGVyaW9kIGR1cmluZyB0aGUgeWVhciB3YXMgYXMgaGlnaCBhcyA4MyUuIFRoZSB2YXJpYXRpb24gZnJvbSBtb250aCB0byBtb250aCBpcyB0byBhbiBleHRlbnQgZGVwZW5kZW50IG9uIHdoaWNoIHNjaG9vbHMgYXJlIGluc3BlY3RlZCBhcyBhIGxhcmdlIHNlY29uZGFyeSBzY2hvb2wgaGFzIGEgYmlnZ2VyIGltcGFjdCBvbiB0aGUgb3ZlcmFsbCBmaWd1cmUgdGhhbiBhIHNtYWxsIHByaW1hcnkgc2Nob29sLiBUaGVyZSBjYW4gYWxzbyBiZSBjb25zaWRlcmFibGUgdmFyaWF0aW9ucyBpbiB0aGUgbGVuZ3RoIG9mIHRpbWUgdGFrZW4gZm9yIHJlcG9ydHMgdG8gYmUgcHVibGlzaGVkIGFmdGVyIGFuIGluc3BlY3Rpb24uXFxuXFxuVGhlIFdlc3QgU3Vzc2V4IFN0cmF0ZWd5IGZvciBTY2hvb2wgSW1wcm92ZW1lbnQsIGludHJvZHVjZWQgZHVyaW5nIDIwMTYsIGFuZCBpbmNsdWRpbmcgbW9yZSByZWd1bGFyIHZpc2l0cyBieSBhZHZpc2VycyB0byBhbGwgc2Nob29scywgaGFzIGNvbnRyaWJ1dGVkIHRvIGluY3JlYXNpbmcgdGhlIG51bWJlciBhbmQgcHJvcG9ydGlvbiBvZiBXZXN0IFN1c3NleCBzY2hvb2xzIHRoYXQgYXJlIGdvb2Qgb3Igb3V0c3RhbmRpbmcuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUmFua2luZ3MgYXMgb2YgRGVjZW1iZXIgMjAxNjoqKlxcblxcbkZyb20gdGhlIGxhdGVzdCBBbm51YWwgcmVwb3J0IChsaW5rIGJlbG93KSwgcHVibGlzaGVkIERlY2VtYmVyIDIwMTY6XFxuXFxuKiBOYXRpb25hbGx5LCBXZXN0IFN1c3NleCBpcyByYW5rZWQgMTQxc3Qgb2YgMTUwIGZvciBQcmltYXJ5IFNjaG9vbHMgYW5kIDY5dGggb2YgMTUwIGZvciBTZWNvbmRhcnkgU2Nob29sc1xcbiogV2l0aGluIHRoZSBTb3V0aCBFYXN0IFJlZ2lvbiwgV2VzdCBTdXNzZXggaXMgcmFua2VkIDE3dGggb2YgMTkgZm9yIFByaW1hcnkgU2Nob29scyBhbmQgOXRoIG9mIDE5IGZvciBTZWNvbmRhcnkgU2Nob29scy4gKEFsc28sIDM0dGggb2YgMzQgU2hpcmUgUGx1cyBDb3VudGllcyBhbmQgU2Vjb25kYXJ5IFNjaG9vbHMgYXJlIHJhbmtlZCAxM3RoIG9mIDM0KVxcblxcbkZ1cnRoZXIgcmVnaW9uYWwgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0IHRoZSDigJxBbm51YWwgUmVwb3J0IDIwMTUvMTYgcmVnaW9uYWwgaW5mb3JtYXRpb24gcGFjazogU291dGggRWFzdOKAnXNlY3Rpb24gb2YgdGhlIGZvbGxvd2luZyBsaW5rOiBbaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL29mc3RlZC1hbm51YWwtcmVwb3J0LTIwMTUxNi1lZHVjYXRpb24tZWFybHkteWVhcnMtYW5kLXNraWxsc11bMF1cXG5cXG4qKlJhbmtpbmdzIGFzIG9mIERlY2VtYmVyIDIwMTc6KipcXG5cXG5UaGUgZGF0ZSBvZiBuZXh0IHVwZGF0ZTogRmVicnVhcnkgMjAxOCAocmVsZWFzZWQgLSBEZWNlbWJlciAyMDE3KVxcblxcblswXTogaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL29mc3RlZC1hbm51YWwtcmVwb3J0LTIwMTUxNi1lZHVjYXRpb24tZWFybHkteWVhcnMtYW5kLXNraWxsc1wifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiUHVwaWxzIGluIFdlc3QgU3Vzc2V4IHNjaG9vbHMganVkZ2VkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgLSB0byBiZSBpbiB0aGUgdG9wIHF1YXJ0aWxlIG9mIGFsbCBMb2NhbCBBdXRob3JpdGllc1wiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgcGVyY2VudGFnZSBvZiBwdXBpbHMgaW4gV2VzdCBTdXNzZXggYXR0ZW5kaW5nIGdvb2Qgb3Igb3V0c3RhbmRpbmcgc2Nob29scy4gXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvNzNGNkM2MjctOTVCOC00OUFBLTlCNEItQ0YzRUNEOUJDQ0QyXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTUtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6ODYsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjkxLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6InhkZzgtY2Q0MiJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIHdobyBhdHRlbmQgc2Nob29scyBpbiBXZXN0IFN1c3NleCB0aGF0IGFyZSBqdWRnZWQgZ29vZCBvciBvdXRzdGFuZGluZyBieSBPZnN0ZWQgXCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjp0cnVlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcIndpdGhpbl90b2xlcmFuY2VcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTM6NDk6NTQuNDE4WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjQ0OjI3LjIyMFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxMzo0OTo1NC40MThaIiwidGFyZ2V0X3RvbGVyYW5jZSI6Ny43LCJpZCI6InV5ODktdnVhciJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbeyJtZXRhZGF0YSI6IiIsImlkIjoiN2trYS16N3Q1In0seyJtZXRhZGF0YSI6IiIsImlkIjoianJ2dC1ia3hzIn1dLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTExVDE0OjA2OjQyLjcyN1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDo0NDoyNy4zMThaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTFUMTQ6MDY6NDIuNzI3WiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifV0sInZlcnNpb24iOiIyMDE4LTAxLTI5VDExOjIyOjQxLjM4MFoifSx7ImlkIjoiN3lldS1lcXlzIiwibmFtZSI6IkNoYW1waW9uaW5nIHRoZSBsb2NhbCBlY29ub215IiwiZ29hbHMiOlt7ImlkIjoiYnZmZC1yZno1IiwibmFtZSI6IkVjb25vbWljIGdyb3d0aCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidXB3YXJkc2xpbmVjaGFydFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqRWNvbm9taWMgR3Jvd3RoOiAtIEdyb3NzIFZhbHVlIEFkZGVkIHBlciBIZWFkKipcXG5cXG4gXFxuXFxuR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgaW5kaWNhdGVzIHRoZSBsZXZlbCBvZiBlY29ub21pYyBhY3Rpdml0eSB3aXRoaW4gYW4gYXJlYSBieSBtZWFzdXJpbmcgaXRzIHByb2R1Y3Rpb24gb2YgZ29vZHMgYW5kIHNlcnZpY2VzLiBJdCBpcyBhIG1lYXN1cmUgdGhhdCBhbGxvd3MgY29tcGFyaXNvbiBvZiBhcmVhcywgYW5kIGhpZ2hsaWdodHMgdmFyaWF0aW9ucyBpbiBwZXJmb3JtYW5jZSB3aXRoIGEgcmVnaW9uLCBhbmQgdHJlbmRzIG92ZXIgdGltZS4gVGhlIEdWQSBmaWd1cmUgKHdvcmtwbGFjZSBiYXNlZCkgZGl2aWRlZCBieSB0aGUgdG90YWwgcmVzaWRlbnRpYWwgcG9wdWxhdGlvbiAocmVzaWRlbnQgYmFzZWQpIGdpdmVzIGFuIGVzdGltYXRlIGZvciBHVkEgcGVyIEhlYWQsIHdoaWxzdCBub3QgYSBtZWFzdXJlIG9mIHByb2R1Y3Rpdml0eSBpdCBpcywgbmV2ZXJ0aGVsZXNzIGEgd2lkZWx5IHVzZWQgbWVhc3VyZSB0byBpbmRpY2F0ZSB0aGUgZWNvbm9taWMgd2VsbC1iZWluZyBvZiBhbiBhcmVhIGFuZCBhZ2FpbiwgcHJvdmlkZXMgY29tcGFyaXNvbi9iZW5jaG1hcmtpbmcgd2l0aCBvdGhlciBhcmVhcy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiT05TIHJlbGVhc2UgYW5udWFsIHN1Yi1yZWdpb25hbCBlc3RpbWF0ZXMgb2YgR1ZBIGFuZCBHVkEgcGVyIGhlYWQuIFRoZSBtb3N0IHJlY2VudCB1cGRhdGUgd2FzIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMTcgYW5kIGNvdmVycyB0aGUgcGVyaW9kIHVwIHRvIDIwMTYuIEFzIGluIHRoZSBwcmV2aW91cyB5ZWFyIHRoZSBkYXRhIGlzIHJlbGVhc2VkIGJ5IHRoZSAyMDE1IE5VVFMzIGFyZWFzIOKAkyB3aGljaCBzcGxpdCBXZXN0IFN1c3NleCBpbnRvIHR3byBhcmVhczogV2VzdCBTdXNzZXggU291dGggV2VzdCAoV1NTVykgaW5jbHVkaW5nIEFkdXIsIEFydW4sIENoaWNoZXN0ZXIgYW5kIFdvcnRoaW5nLCBhbmQgV2VzdCBTdXNzZXggTm9ydGggRWFzdCAoV1NORSkgaW5jbHVkaW5nIENyYXdsZXksIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXguIE5PTUlTIGhhZCBwcmV2aW91c2x5IHJld29ya2VkIHRoZSBOVVRTMyBkYXRhIHRvIHByb3ZpZGUgZXN0aW1hdGVzIGZvciBjb3VudHkgbGV2ZWwgZ2VvZ3JhcGhpZXMsIHdoaWxzdCB0aGUgbmV3IGRhdGEgaGFzIGJlZW4gcmVsZWFzZWQgTk9NSVMgaGF2ZSBub3QgeWV0IHVuZGVydGFrZW4gdGhpcyBleGVyY2lzZSwgdGhvdWdoIHdlIGNhbiBtYWtlIHNvbWUgZXN0aW1hdGUgb2YgdGhlIFdlc3QgU3Vzc2V4IGZpZ3VyZSBpbiB0aGUgbWVhbnRpbWUuXFxuXFxuIFxcblxcbk5VVFMzIDogW2h0dHA6Ly9Ob21lbmNsYXR1cmVdWzBdIG9mIFRlcnJpdG9yaWFsIFVuaXRzIGZvciBTdGF0aXN0aWNzIC0gR2VvZ3JhcGhpZXMgdXNlZCBhY3Jvc3MgRVUgZm9yIHN0YXRpc3RpY2FsIHB1cnBvc2VzXFxuXFxuWzBdOiBodHRwOi8vTm9tZW5jbGF0dXJlXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0M3MzdERTM5LTI1NjktNDQ4NC05NjU2LUY2RkE2OUFDMTVCQlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgbGV2ZWxzIG9mIEdWQSBwZXIgaGVhZCBpbiBXU1NXIGNvbnRpbnVlIHRvIGJlIHNpZ25pZmljYW50bHkgbG93ZXIgdGhhbiB0aGUgTm9ydGggRWFzdCBvZiB0aGUgY291bnR5IHdoZXJlIEdWQSBwZXIgaGVhZCBpcyBoaWdoZXIgdGhhbiB0aGUgcmVnaW9uYWwgYW5kIG5hdGlvbmFsIHJhdGUg4oCTZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBHYXR3aWNrIEFpcnBvcnQgYmVpbmcgdGhlIGtleSBlY29ub21pYyBkcml2ZXIgZm9yIHRoYXQgc3ViIHJlZ2lvbi4gVGhlIGVzdGltYXRlIGZvciBXZXN0IFN1c3NleCBzdWdnZXN0IHRoYXQgaXQgaXMganVzdCB1bmRlciA5JSBsb3dlciB0aGUgZmlndXJlIGZvciB0aGUgU291dGggRWFzdCByZWdpb24g4oCTIGFzIGxpZ2h0IHJlZHVjdGlvbiBpbiB0aGUgZ2FwIGJldHdlZW4gdGhlIHJlZ2lvbmFsIGFuZCBjb3VudHkgZmlndXJlIGNvbXBhcmVkIHdpdGggdGhlIHByZXZpb3VzIHllYXIuXFxuXFxuT3ZlciB0aGUgbGFzdCB5ZWFyICgyMDE1LTIwMTYpIEdWQSBwZXIgaGVhZCBncmV3IGluIFdTTkUgYnkgMS42NCUgbmVhcmx5IDcgdGltZXMgbW9yZSB0aGFuIHRoYXQgc2VlbiBpbiBXU1NXIHdoaWNoIGdyZXcgYnkgMC4yNCUuIFJlZ2lvbmFsIGdyb3d0aCB3YXMgMS42NiUgYW5kIHRoYXQgZm9yIEVuZ2xhbmQgYXQgMi43JS4gTG9va2luZyBhdCB0aGUgYXJlYXMgd2l0aGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBNaWx0b24gS2V5bmVzIHNhdyB0aGUgaGlnaGVzdCBncm93dGggb3ZlciB0aGUgeWVhciBhdCA2Ljg5JSBhbmQgaW4gc29tZSBhcmVhIEdWQSBwZXIgaGVhZCBmZWxsIOKAkyB0aGUgZ3JlYXRlc3QgZmFsbCBiZWluZyBzZWVuIGluIE5vcnRoIEhhbnRzIGF0IC0xLjExJS4gT2YgYWxsIHRoZXNlIDIxIGFyZWFzIFdTTkUgd2FzIHJhbmtlZCA5dGggaGlnaGVzdCwgYW5kIFdTU1cgYXQgMTZ0aFxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9BNDFEQzE4RS02MTMzLTRDRjUtOTdDOS1GMTkwNkZEN0Y1QThcIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJFc3RpbWF0ZXMgZm9yIFdlc3QgU3Vzc2V4IHN1Z2dlc3QgdGhhdCBpbiAxOTk3ICh0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGN1cnJlbnQgdGltZSBzZXJpZXMpLCBHVkEgcGVyIGhlYWQgd2FzIMKjMTQsMDA2IGZvciBXZXN0IFN1c3NleDsgc2xpZ2h0bHkgaGlnaGVyIHRoYW4gZm9yIEVuZ2xhbmQgYXQgwqMxMyw2NzYsIGFuZCA1IGxvd2VyIHRoYW4gdGhlIFNvdXRoIEVhc3QgYXQgwqMxNCw2OTYuIE92ZXIgdGltZSBob3dldmVyLCBHVkEgZmlndXJlcyBoYXZlIHJpc2VuIGluIEVuZ2xhbmQgYW5kIHRoZSBTb3V0aCBFYXN0IGF0IGEgaGlnaGVyIHJhdGUgdGhhbiBpbiBXZXN0IFN1c3NleCwgdGhlIGdhcCBpbiBHVkEgcGVyIGhlYWQgYmV0d2VlbiBXZXN0IFN1c3NleCBhbmQgdGhlIFNvdXRoIEVhc3QgaGFzIG5vdyByaXNlbiB0byA5LjElIGluIDIwMTQuXFxuXFxuTG9va2luZyBhdCB0aGUgY291bnR5IGVzdGltYXRlcyBmcm9tIE5vbWlzIGl0IGlzIGV2aWRlbnQgdGhhdCBXZXN0IFN1c3NleCBkb2VzIG5vdCBjb21wYXJlIGZhdm91cmFibHkgd2l0aCBvdGhlciBjb3VudHkgYXJlYXMgaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uLCBpdCBsaWVzIGluIHRoZSBib3R0b20gNTAlIG9mIGF1dGhvcml0aWVzIHdoZXJlIHRoZSByYW5nZSBpbiBHRFAgcGVyIGhlYWQgaXMgZnJvbSDCozE3LDMzOSBpbiBNZWR3YXkgdG8gdGhlIGhpZ2hlc3QgaW4gV2VzdCBCZXJrc2hpcmUgb2YgwqM0NSw3Mzgg4oCTIHdoaWNoIGlzIG1vcmUgdGhhbiBkb3VibGUgdGhlIGxldmVsIG9mIHRoYXQgc2VlbiBpbiBXZXN0IFN1c3NleCBTb3V0aCBXZXN0IGFyZWEuXFxuXFxuV2VzdCBTdXNzZXggZG9lcyBjb21wYXJlIGJldHRlciB3aXRoIHRob3NlIEdWQSBwZXIgSGVhZCBsZXZlbHMgb2Ygb3VyIFN0YXRpc3RpY2FsIE5laWdoYm91cnMg4oCTYXMgc2hvd24gYmVsb3cgYW5kIGxpZXMgaW4gdGhlIGhpZ2hlc3QgcXVhcnRpbGUuIFRoZSBhbWJpdGlvbiBpcyB0byBicmluZyB0aGUgR1ZBIHBlciBoZWFkIGZpZ3VyZSBmb3IgV2VzdCBTdXNzZXggdG8gdGhlIHJlZ2lvbmFsIChTb3V0aCBFYXN0KSBhdmVyYWdlLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzY1MUMxOTc4LUEyQzAtNEM5NS1CRTVCLTczNzcwRkNFODZEQlwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBsYXRlc3QgZGF0YSBmb3IgR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgd2FzIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMTYgYW5kIGNvdmVycyB0aGUgcGVyaW9kIHVwIHRvIDIwMTUuIFRoZSBuZXh0IHJlbGVhc2Ugb2YgdGhpcyBkYXRhIGZyb20gT05TIGlzIGV4cGVjdGVkIGluIGlzIGEgcmVjb2duaXNlZCBtZWFzdXJlIG9mIGVjb25vbWljIGFjdGl2aXR5IGJyb2FkbHkgZGVmaW5lZCBhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBvZiB0aGUgZ29vZHMgYW5kIHNlcnZpY2VzIHByb2R1Y2VkIGFuZCB0aGUgY29zdCBvZiByYXcgbWF0ZXJpYWxzIGFuZCBvdGhlciBpbnB1dHMgdXNlZCBpbiBwcm9kdWN0aW9uLiBUaGUgZGF0YSBpcyByZWxlYXNlZCBhbm51YWxseSBmcm9tIE9OUywgYW5kIGluY2x1ZGVzIHRoZSBzdWItcmVnaW9uYWwgZXN0aW1hdGVzIGZvciBHVkEgZm9yIHRoZSB0d28gV2VzdCBTdXNzZXggU3ViIEFyZWFzOlxcblxcbjEuIFdlc3QgU3Vzc2V44oCTU291dGggV2VzdCAoV1NTVykg4oCTIGNvbXByaXNlcyBDaGljaGVzdGVyLCBBcnVuLCBBZHVyIGFuZCBXb3J0aGluZ1xcbjEuIFdlc3QgU3Vzc2V44oCTTm9ydGggRWFzdCAoV1NORSkg4oCTIGNvbXByaXNlcyBDcmF3bGV5LCBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4XFxuXFxuVGhlIGxhdGVzdCBkYXRhLGFscmVhZHkgcmVwb3J0ZWQsIHdhcyByZWxlYXNlZCBpbiBEZWNlbWJlciAyMDE2LCBhbmQgY292ZXJzIHRoZSBwZXJpb2QgdXAgdG8yMDE1LCB0aGUgZmlndXJlcyBhbmQgdHJlbmRzIGZvciB0aGUgdHdvIFdlc3QgU3Vzc2V4IGFyZWFzIHdlcmUgcmVwb3J0ZWQgYXQgdGhlZW5kIG9mIHRoZSBwcmV2aW91cyBxdWFydGVyIGFuZCB0aGVyZSBpcyBubyB1cGRhdGUgaW4gdGVybXMgb2YgdGhlIGxvY2FscGljdHVyZS4gVGhlIG5leHQgcmVsZWFzZSBvZiBkYXRhIGlzIGV4cGVjdGVkIGluIERlY2VtYmVyIDIwMTcuIEhvd2V2ZXIsIGluIE1hcmNoIDIwMTcgdGFibGVzIHNob3dpbmcgR1ZBIGFsbG9jYXRlZCB0b2xvY2FsIGF1dGhvcml0aWVzIGluIHRoZSBVSyB3ZXJlIHJlbGVhc2VkLCB0aGUgZGF0YSB3YXMgcHJvZHVjZWQgaW4gcmVzcG9uc2UgdG91c2VyIG5lZWQgYnV0IHdoaWxlIG5vdCBOYXRpb25hbCBTdGF0aXN0aWNzLCBuZXZlcnRoZWxlc3MgZ2l2ZSBzb21lIGluZGljYXRpb25hcyB0byB0aGUgc2NhbGUgb2YgR1ZBIGF0IGxvY2FsIGF1dGhvcml0eSBsZXZlbCwgYW5kIHRoZSBjb250cmlidXRpb24gdGhhdCBlYWNob2YgdGhlIGJyb2FkIGxldmVsIHNlY3RvcnMgbWFrZSB0byB0aGUgbG9jYWwgZWNvbm9teS5cXG5cXG5baHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2dyb3NzdmFsdWVhZGRlZGd2YS9kYXRhc2V0cy9yZWdpb25hbGd2YWlieWxvY2FsYXV0aG9yaXR5aW50aGV1a11bMF1cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lm9ucy5nb3YudWsvZWNvbm9teS9ncm9zc3ZhbHVlYWRkZWRndmEvZGF0YXNldHMvcmVnaW9uYWxndmFpYnlsb2NhbGF1dGhvcml0eWludGhldWtcIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yRjI0OTgwMS00NUVDLTRGQzctQjgzRi03ODAzRkFBNEM0OUNcIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9DNEYxOTk0Ny1EMzYxLTRFMTItQUZGNC1DODI5Q0VFRUIyRDJcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIG1haW4gcG9pbnRzIGZyb20gdGhlIChPTlMpIHN1bW1hcnkgb2YgdGhlIChHQikgU2hvcnQtdGVybSBlY29ub21pYyBpbmRpY2F0b3JzIHB1Ymxpc2hlZCBpbiBlYXJseSBTZXB0ZW1iZXIgMjAxNyBhcmU6XFxuXFxuKiBUb3RhbCBwcm9kdWN0aW9uIG91dHB1dCBzYXcgYSBzbGlnaHQgaW5jcmVhc2UgaW4gdGhlIDMgbW9udGhzIHRvIEp1bHkgMjAxNyBhbmQgaW5jcmVhc2VkIGJ5IDAuMyU7XFxuKiBNYW51ZmFjdHVyaW5nIHJlbWFpbnMgcmVsYXRpdmVseSBzdWJkdWVkIHNpbmNlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHllYXIsIHRob3VnaCBzb21lIGdyb3d0aCBzZWVuIGZyb20gSnVseSBhdHRyaWJ1dGVkIHRvIHN0cm9uZ2VyIGdyb3d0aCBpbiBjYXIgcHJvZHVjdGlvbjtcXG4qIENvbnN0cnVjdGlvbiBvdXRwdXQgZmVsbCBmb3IgdGhlIGZvdXJ0aCBtb250aCBpbiBhIHJvdywgd2l0aCBwcml2YXRlIGhvdXNpbmcgYnVpbGRpbmcgY29udHJhY3RpbmcgaW4gSnVseSAyMDE3IGFmdGVyIHNlZWluZyBncm93dGggYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgeWVhci5cXG5cXG5baHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2Vjb25vbWljb3V0cHV0YW5kcHJvZHVjdGl2aXR5L291dHB1dC9hcnRpY2xlcy9zaG9ydHRlcm1pbmRpY2F0b3JzZWNvbm9taWNjb21tZW50YXJ5L3NlcHQyMDE3XVswXVxcblxcblswXTogaHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2Vjb25vbWljb3V0cHV0YW5kcHJvZHVjdGl2aXR5L291dHB1dC9hcnRpY2xlcy9zaG9ydHRlcm1pbmRpY2F0b3JzZWNvbm9taWNjb21tZW50YXJ5L3NlcHQyMDE3XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5Hcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBpcyBhIHJlY29nbmlzZWQgbWVhc3VyZSBvZiBlY29ub21pYyBhY3Rpdml0eSBicm9hZGx5IGRlZmluZWQgYXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdmFsdWUgb2YgdGhlIGdvb2RzIGFuZCBzZXJ2aWNlcyBwcm9kdWNlZCBhbmQgdGhlIGNvc3Qgb2YgcmF3IG1hdGVyaWFscyBhbmQgb3RoZXIgaW5wdXRzIHVzZWQgaW4gcHJvZHVjdGlvbi4gVGhlIGRhdGEgaXMgcmVsZWFzZWQgYW5udWFsbHkgZnJvbSBPTlMsIGFuZCBpbmNsdWRlcyB0aGUgc3ViLXJlZ2lvbmFsIGVzdGltYXRlcyBmb3IgR1ZBIGZvciB0aGUgdHdvIFdlc3QgU3Vzc2V4IFN1YiBBcmVhczpcXG5cXG4xLiBXZXN0IFN1c3NleCDigJNTb3V0aCBXZXN0IChXU1NXKSDigJMgY29tcHJpc2VzIENoaWNoZXN0ZXIsIEFydW4sIEFkdXIgYW5kIFdvcnRoaW5nXFxuMS4gV2VzdCBTdXNzZXgg4oCTTm9ydGggRWFzdCAoV1NORSkg4oCTIGNvbXByaXNlcyBDcmF3bGV5LCBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4XFxuXFxuVGhlIGxhdGVzdCBkYXRhIHdhcyByZWxlYXNlZCBpbiBEZWNlbWJlciAyMDE2LCBhbmQgY292ZXJzIHRoZSBwZXJpb2QgdXAgdG8gMjAxNSwgdGhlIGZpZ3VyZXMgYW5kIHRyZW5kcyBmb3IgdGhlIHR3byBXZXN0IFN1c3NleCBhcmVhcyB3ZXJlIHJlcG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIHF1YXJ0ZXIgYW5kIHRoZXJlIGlzIG5vIHVwZGF0ZSBpbiB0ZXJtcyBvZiB0aGUgbG9jYWwgcGljdHVyZS4gVGhlIG5leHQgcmVsZWFzZSBvZiBkYXRhIGlzIGV4cGVjdGVkIGluIERlY2VtYmVyIDIwMTcuXFxuXFxuSG93ZXZlciwgaW4gdGVybXMgb2YgdGhlIG5hdGlvbmFsIHBpY3R1cmUsIHRoZXJlIGlzIHNvbWUgY29tbWVudGFyeSBmcm9tIHZhcmlvdXMgc291cmNlcyBpbmNsdWRpbmcgT05TIGl0c2VsZiBhbmQgdGhlIEJhbmsgb2YgRW5nbGFuZC5cXG5cXG5PTlMgTW9udGhseSBFY29ub21pYyBjb21tZW50YXJ5IChNYXJjaCAyMDE3KSBzdWdnZXN0cyB0aGF0IHRoZSBVSyBlY29ub215IGdyZXcgYnkgMC43JSBpbiBRdWFydGVyIDQgKE9jdCB0byBEZWMpIDIwMTYsIGFuZCBieSAxLjglIGZvciB0aGUgd2hvbGUgb2YgMjAxNi4gV2hvbGUgZWNvbm9teSBpbmRpY2F0b3JzIG9mIGVjb25vbWljIHdlbGwtYmVpbmcgYXJlIHJlcG9ydGVkIGFzIGJlaW5nIGdlbmVyYWxseSBwb3NpdGl2ZSx3aXRoIGdyb3d0aCBpbiBHRFAgcGVyIGhlYWQsIHNwZW5kaW5nIHBlciBoZWFkIGFuZCBuZXQgbmF0aW9uYWwgZGlzcG9zYWJsZSBpbmNvbWUsIHRob3VnaCBob3VzZWhvbGQgaW5jb21lIHNhdyBhIGRlY2xpbmUuIFRoZSBncm93dGggaW4gcHJvZHVjdGlvbiBhbmQgY29uc3RydWN0aW9uIG91dHB1dCBzZWVuIHRvd2FyZHMgdGhlIGVuZCBvZiAyMDE2IGhhZCBmbGF0dGVuZWQgb3V0IGluIEphbnVhcnkgMjAxNyBhbmQgd2hpbHN0IHNlcnZpY2Ugc2VjdG9ycyBkcm9wcGVkIHNsaWdodGx5IGluIEphbnVhcnkgdGhlIGxvbmcgdGVybSBwaWN0dXJlIGlzIHN0aWxsIG9uZSBvZiBleHBlY3RlZCBncm93dGguIE92ZXJhbGwsIG1vc3Qgb2YgdGhlIGJyb2FkZXIgbWVhc3VyZXMgb2YgdGhlIFVLIGVjb25vbXkgYXJlIGNvbnRpbnVpbmcgdGhlIHRyZW5kcyBzZWVuIGR1cmluZyAyMDE2LiBGb3IgZXhhbXBsZSxjb25zdW1lciBzcGVuZGluZyByZW1haW5zIHJlbGF0aXZlbHkgc3Ryb25nLCBzZXJ2aWNlcyBvdXRwdXQgaXMgaW5jcmVhc2luZyxtYW51ZmFjdHVyaW5nIG91dHB1dCBpcyByaXNpbmcsIHBhcnRpY3VsYXJseSBpbiB0aGUgcHJvZHVjdGlvbiBvZiBtb3RvciB2ZWhpY2xlcyBhbmQgdW5lbXBsb3ltZW50IGlzIGxvdy4gSG91c2Vob2xkcyBhcmUgaG93ZXZlciBzZWVpbmcgcmlzaW5nIHByaWNlcyBmb3IgZ29vZHMgYW5kIHNlcnZpY2VzIGluIHNvbWUga2V5IGFyZWFzIHN1Y2ggYXMgZm9vZCBhbmQgZnVlbCwgd2hpY2ggaXMgcHV0dGluZyBkb3dud2FyZCBwcmVzc3VyZSBvbiByZWFsIHdhZ2VzIGFuZCBpbmNvbWVzLlxcblxcbsKgIFtodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvbmF0aW9uYWxhY2NvdW50cy91a3NlY3RvcmFjY291bnRzL2FydGljbGVzL21vbnRobHllY29ub21pY2NvbW1lbnRhcnkvbWFyMjAxN11bMF1cXG5cXG5Nb3JlIG5hdGlvbmFsIGxldmVsIGRhdGEgd2lsbCBiZWNvbWUgYXZhaWxhYmxlIG92ZXIgdGhlIGNvbWluZyBtb250aHMsIHRob3VnaCBpdCB3aWxsIGJlIG11Y2ggbG9uZ2VyIGJlZm9yZSBkYXRhIGZvciBXZXN0IFN1c3NleCB3aWxsIGJlIHJlbGVhc2VkIGFuZCB3ZSBjYW4gc2VlIHdoYXQgdGhlIGVtZXJnaW5nIHBpY3R1cmUgaXMgZm9yIHRoZSBsb2NhbCBlY29ub215IHBhcnRpY3VsYXJseSBpbiBsaWdodCBvZiB0aGUgcG9zdCBFVSB2b3RlLCB0cmlnZ2VyaW5nIG9mIEFydGljbGUgNTAgYW5kIHN1YnNlcXVlbnQgbmVnb3RpYXRpb25zLlxcblxcblswXTogaHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L25hdGlvbmFsYWNjb3VudHMvdWtzZWN0b3JhY2NvdW50cy9hcnRpY2xlcy9tb250aGx5ZWNvbm9taWNjb21tZW50YXJ5L21hcjIwMTdcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcbkdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIGlzIGEgcmVjb2duaXNlZCBtZWFzdXJlIG9mIGVjb25vbWljIGFjdGl2aXR5IGJyb2FkbHkgZGVmaW5lZCBhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBvZiB0aGUgZ29vZHMgYW5kIHNlcnZpY2VzIHByb2R1Y2VkIGFuZCB0aGUgY29zdCBvZiByYXcgbWF0ZXJpYWxzIGFuZCBvdGhlciBpbnB1dHMgdXNlZCBpbiBwcm9kdWN0aW9uLiBUaGUgZGF0YSBpcyByZWxlYXNlZCBhbm51YWxseSBmcm9tIE9OUywgdGhlIGxhdGVzdCBzdWItcmVnaW9uYWwgZXN0aW1hdGVzIGZvciBHVkEgd2FzIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMTYsIGFuZCB0aGUgbmV4dCByZWxlYXNlIGlzIGV4cGVjdGVkIGluIERlY2VtYmVyIDIwMTcuXFxuXFxuVGhlIGRhdGEgaXMgYXZhaWxhYmxlIGF0OiBbaHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2dyb3NzdmFsdWVhZGRlZGd2YS9kYXRhc2V0cy9yZWdpb25hbGdyb3NzdmFsdWVhZGRlZGluY29tZWFwcHJvYWNoXVswXVxcblxcblByZXZpb3VzIHRvIDIwMTUgdGhlIEdWQSBkYXRhIHdhcyByZWxlYXNlZCBhdCBjb3VudHkgbGV2ZWwgYW5kIHRoZXJlZm9yZSBhdmFpbGFibGUgZm9yIFdlc3QgU3Vzc2V4LiBTaW5jZSB0aGVuLCB0aGUgZmlndXJlcyBoYXZlIGJlZW4gcmVsZWFzZWQgYXQgcmV2aXNlZCBnZW9ncmFwaGljYWwgbGV2ZWxzIHdoaWNoIHNwbGl0IHRoZSBjb3VudHkgaW50byB0d28gYXJlYXMgdG8gaW5jbHVkZTpcXG5cXG4xLiBXZXN0IFN1c3NleCDigJMgU291dGggV2VzdCAoV1NTVykg4oCTIGNvbXByaXNlcyBDaGljaGVzdGVyLCBBcnVuLCBBZHVyIGFuZCBXb3J0aGluZ1xcbjEuIFdlc3QgU3Vzc2V4IOKAkyBOb3J0aCBFYXN0IChXU05FKSDigJMgY29tcHJpc2VzIENyYXdsZXksIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXhcXG5cXG5UaGlzIHNwbGl0IGlzIGhlbHBmdWwgYXMgV2VzdCBTdXNzZXjigJNTb3V0aCBXZXN0IChXU1NXKSBtYXRjaGVzIHdpdGggQ29hc3RhbCBXZXN0IFN1c3NleCBhbmQgV2VzdCBTdXNzZXgtTm9ydGggRWFzdCAoV1NORSkgd2l0aCB0aGF0IGFyZWEgb2YgV2VzdCBTdXNzZXggdGhhdCBsaWVzIHdpdGhpbiBHYXR3aWNrIERpYW1vbmQgc28gdGhlcmUgaXMgbW9yZSBkZXRhaWwgZm9yIHRoZXNlIHR3byB2ZXJ5IGRpZmZlcmVudCBlY29ub21pYyBhcmVhcyBvZiB0aGUgY291bnR5LiBXaGlsc3QgdGhlIGZpZ3VyZSBzYXJlIG5vdCByZWxlYXNlZCBieSBPTlMgZm9yIFdlc3QgU3Vzc2V4IENvdW50eSBhcmVhIHRoZXkgY2FuIGJlIGVzdGltYXRlZCBieSBjb21iaW5pbmcgdGhlIHR3byBuZXcgYXJlYXMuIFRoZSBsYXRlc3QgZmlndXJlcyBzdWdnZXN0IHRoYXQgYXQgMjAxNTpcXG5cXG4qIFdpdGhpbiB0aGUgU291dGggRWFzdCByZWdpb24gQmVya3NoaXJlIGhhZCB0aGUgaGlnaGVzdCBHVkEgYXQgwqMzNSw4NDVtIGFuZCBJc2xlIG9mIFdpZ2h0IHRoZSBsb3dlc3QgYXQgwqMyLDQ3M20uXFxuKiBXaXRoIHRoZSBleGNlcHRpb24gb2YgUG9ydHNtb3V0aCBhbGwgYXJlYXMgd2l0aGluIHRoZSBTb3V0aCBFYXN0IGV4cGVyaWVuY2VkIGdyb3d0aCBpbiBHVkEgb3ZlciB0aGUgeWVhciAyMDE0LTIwMTUuIFRoZSBoaWdoZXN0IHBlcmNlbnRhZ2UgZ3Jvd3RoIHdhcyBzZWVuIGluIEtlbnQgVGhhbWVzIEdhdGV3YXkgYXQgNi4xJSwgUG9ydHNtb3V0aCBzYXcgYSBmYWxsIGluIEdWQSBvZiAwLjQlIG92ZXIgdGhlIHllYXIuIE91dCBvZiB0aGUgMjEgc3ViIGFyZWFzIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiDigJhXZXN0IFN1c3NleCAtIFNvdXRoIFdlc3QnIHNhdyB0aGUgc2Vjb25kIGxvd2VzdCBncm93dGggb2YgMC4xJSBjb21wYXJlZCB3aXRoIGdyb3d0aCBpbiBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IG9mIDMlLiBUaGlzIGNvbXBhcmVzIHdpdGggdGhlIGdyb3d0aCBvdmVyIHRoZSB5ZWFyIGZvciBFbmdsYW5kIGF0IDMuMCUgYW5kIGZvciB0aGUgU291dGggRWFzdCByZWdpb24gYSBncm93dGggb2YgMy4yJS5cXG4qIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3QgaXMgcmFua2VkIDd0aCAob3V0IG9mIDIxIGFyZWFzIGluIHRoZSByZWdpb24pIGF0IMKjMTEsNzk5bSwgYW5kIFdlc3QgU3Vzc2V4IFNvdXRoIFdlc3QgaGFzIGZhbGxlbiBmcm9tIDExdGggdG8gMTN0aCBwb3NpdGlvbiBvdmVyIHRoZSBsYXN0IHllYXIgYXQgwqM5LDI5Mm0uIFRoZSBXZXN0IFN1c3NleCBlY29ub215IGFzIGEgd2hvbGUgaXMgdGhlcmVmb3JlIGVzdGltYXRlZCB0byBiZSDCozIxLDA5MW0uXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZ3Jvc3N2YWx1ZWFkZGVkZ3ZhL2RhdGFzZXRzL3JlZ2lvbmFsZ3Jvc3N2YWx1ZWFkZGVkaW5jb21lYXBwcm9hY2hcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRDZFRDhEODAtRkFFNS00RTM2LThBMEItMDI1NDdENDIyRjdEXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkdyb3NzIFZhbHVlIEFkZGVkIHBlciBoZWFkXFxuXFxuR3Jvc3MgVmFsdWUgQWRkZWQgcGVyIGhlYWQgdXNlcyBhIHdvcmtwbGFjZS1iYXNlZCBudW1lcmF0b3IgaS5lLiB0aGF0IEdWQSBwcm9kdWNlZCBpbiB0aGF0IGFyZWEgZGl2aWRlZCBieSB0aGUgcmVzaWRlbmNlIGJhc2VkIGRlbm9taW5hdG9yICh0b3RhbCByZXNpZGVudGlhbCBwb3B1bGF0aW9uKS4gSXQgYWxsb3dzIGNvbXBhcmlzb24gb2YgdGhlIHdlYWx0aCBnZW5lcmF0aW9uIGNhcGFiaWxpdHkgYXQgdmFyaW91cyBnZW9ncmFwaGljYWwgYXJlYXMgYnV0IGNhbiBwcm92aWRlIHNsaWdodGx5IG1pc2xlYWRpbmcgcmVzdWx0cyBhcyB0aGUgbWVhc3VyZXMgYXJlIG1peGVkIGJldHdlZW4gd29ya3BsYWNlIGJhc2VkIEdWQSBnZW5lcmF0ZWQgaW4gdGhhdCBhcmVhIGFuZCB0aGUgcmVzaWRlbnQgYmFzZWQgcG9wdWxhdGlvbi4gVGhlIHdlYWx0aCBjcmVhdGlvbiBvZiB0aG9zZSB3aG8gY29tbXV0ZSBpcyBjb3VudGVkIGF0IHRoZSB3b3JrcGxhY2Ugc28gdGhhdCBhcmVhcyBvZiBzaWduaWZpY2FudCBvdXQtY29tbXV0aW5nIG1heSBoYXZlIHRoZSBlZmZlY3Qgb2YgdW5kZXJzdGF0aW5nIEdWQSBsZXZlbHMgYXMgd291bGQgdGhvc2UgYXJlYXMgd2l0aCBhIGhpZ2ggcmV0aXJlbWVudCBwb3B1bGF0aW9uLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yRDg1RUJEOC0xQzdDLTQyNzUtQjc1OS1ENzU5OEU3NUNFN0FcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiRXN0aW1hdGVzIG9mIEdWQSBwZXIgaGVhZCBpbmRpY2F0ZSB0aGF0IFdlc3QgU3Vzc2V4IFNvdXRoIFdlc3QgbGV2ZWxzIGFyZSBsb3dlciB0aGFuIHRoZSByZWdpb25hbCBhbmQgbmF0aW9uYWwgbGV2ZWxzLCB3aGVyZWFzIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3QgbGV2ZWxzIGFyZSBoaWdoZXIuIEdWQSBwZXIgaGVhZCBmb3IgV2VzdCBTdXNzZXggYXQgMjAxNSBpcyBlc3RpbWF0ZWQgdG8gYmUgwqMyNSwyMjAsIGFnYWluIGxvd2VyIHRoYW4gdGhhdCBmb3IgRW5nbGFuZCAowqMyNiwxNTkpIGFuZCBmb3IgdGhlIFNvdXRoIEVhc3QgcmVnaW9uICjCozI3LDg0NykuIFNpbmNlIDE5OTcgdGhlIGdhcCBpbiBHVkEgcGVyIGhlYWQgYmV0d2VlbiBXZXN0IFN1c3NleCBhbmQgdGhlIFNvdXRoIEVhc3QgaGFzIG5vdyByaXNlbiBmcm9tIDQlIHRvIG92ZXIgMTAlIGluIDIwMTUuIFRoZSBsYXRlc3QgZmlndXJlcyBzaG93IHRoYXQ6XFxuXFxuKiBJbiAyMDE0IEdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIHBlciBoZWFkIG9mIHBvcHVsYXRpb24gaW5jcmVhc2VkIGluIGFsbCByZWdpb25zIGluIHRoZSBVSy4gVGhlIGhpZ2hlc3QgYW5udWFsIGdyb3d0aCB3YXMgaW4gdGhlIE5vcnRoIFdlc3QgYXQgMy4wJSBhbmQgdGhlIGxvd2VzdCBpbiB0aGUgRWFzdCBNaWRsYW5kcyBhdCAxLjAlLiBUaGUgU291dGggRWFzdCBleHBlcmllbmNlZCBhIGdyb3d0aCBvZiAyLjMlIGhpZ2hlciB0aGFuIHRoYXQgZm9yIEVuZ2xhbmQgYXQgMi4xJS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIFlvcmtzaGlyZSBhbmQgVGhlIEh1bWJlciBhbGwgcmVnaW9ucyBpbiBFbmdsYW5kIGV4cGVyaWVuY2VkIGEgbG93ZXIgbGV2ZWwgb2YgZ3Jvd3RoIGluIEdWQSBwZXIgaGVhZCBvdmVyIHRoZSB5ZWFyIDIwMTQtMjAxNSB0aGFuIHRoYXQgb3ZlciB0aGUgcHJldmlvdXMgeWVhci5cXG5cXG4qIFdpdGhpbiB0aGUgU291dGggRWFzdCByZWdpb24gTWlsdG9uIEtleW5lcyBoYXMgdGhlIGhpZ2hlc3QgR1ZBIHBlciBoZWFkIG9mIGFsbCBhcmVhcyBhdCDCozQxLDU4MSBhbmQgRWFzdCBLZW50IHRoZSBsb3dlc3QgYXQgwqMxNywyMzIuXFxuXFxuKiBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IEdWQSBwZXIgaGVhZCBhdCDCozMwLDA2OSBpcyBoaWdoZXIgdGhhbiB0aGUgYXZlcmFnZSBmb3IgRW5nbGFuZCAowqMyNiwxNTApIGFuZCB0aGUgU291dGggRWFzdCByZWdpb24gKMKjMjcsODQ3KSBhbmQgaXMgcmFua2VkIDd0aCBoaWdoZXN0IG91dCBvZiB0aGUgMjEgZ2VvZ3JhcGhpZXMgaW4gdGhlIHJlZ2lvbi4gSXQgY29tcGFyZXMgd2l0aCB0aGUgR1ZBIHBlciBoZWFkIHNlZW4gaW4gV2VzdCBTdXNzZXggU291dGggRWFzdCBvZiDCozIwLDkzMyAocmFua2VkIDE2LzIxKS5cXG5cXG4qIE92ZXIgdGhlIGxhc3QgdGVuIHllYXJzIDIwMDUtMjAxNSBHVkEgcGVyIGhlYWQgaW5jcmVhc2VkIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBieSAyNS4zJS4gV2l0aGluIHRoZSBTb3V0aCBFYXN0IE1pbHRvbiBLZXluZXMgc2F3IHRoZSBoaWdoZXN0IGdyb3d0aCBvZiBvdmVyIDQwJSBjb21wYXJlZCB3aXRoIHRoZSBsb3dlc3QgZ3Jvd3RoIG9mIDUuOCUgaW4gU291dGhhbXB0b24uIEluIFdlc3QgU3Vzc2V4IHRoZSBncm93dGggaW4gdGhlIE5vcnRoIEVhc3Qgb2YgdGhlIGNvdW50eSBhdCAzNS44JSB3YXMgdGhlIHNlY29uZCBoaWdoZXN0IHJhdGUgb2YgZ3Jvd3RoIGluIHRoZSByZWdpb24sIGFuZCBvdmVyIHR3aWNlIHRoYXQgc2VlbiBpbiBXZXN0IFN1c3NleCBTb3V0aCBXZXN0IGF0IDE2JSBncm93dGguIEhvd2V2ZXIsIG92ZXIgdGhlIGxhc3QgeWVhciBpbiAxNC0xNSBncm93dGggaW4gR1ZBIHBlciBoZWFkIGhhcyBnZW5lcmFsbHkgZmFsbGVuIHNpbmNlIHRoZSBwcmV2aW91cyB5ZWFyLiBJbmRlZWQgV2VzdCBTdXNzZXggU291dGggV2VzdCBpcyBvbmUgb2YgdHdvIGFyZWFzIGluIHRoZSByZWdpb25hbCB0byBoYXZlIHNlZW4gYSBkcm9wIG9uIEdWQSBwZXIgaGVhZCBsZXZlbHMoLTAuNyUgKSBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IHNhdyBhbiBpbmNyZWFzZSBvZiAxMDklIGluIDIwMTQtMTUgY29tcGFyZWQgd2l0aCA2LjclIGdyb3d0aCBpbiB0aGUgcHJldmlvdXMgeWVhci5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvREI1Q0U0MEUtRTU0MS00RTA5LTk3MEMtN0EwN0QxQ0U4N0NBXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuTm8gZnVydGhlciBlc3RpbWF0ZXMgb2YgR1ZBIGF0IGxvY2FsIGxldmVsIHdpbGwgYmUgcmVsZWFzZWQgZnJvbSBPTlMgdW50aWwgbWlkLURlY2VtYmVyIDIwMTYgd2hpY2ggd2lsbCBnaXZlIEdWQSBhbmQgR1ZBIHBlciBoZWFkIGVzdGltYXRlcyB1cCB0byAyMDE1LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5XaGF0IHdpbGwgaGFwcGVuIHRvIHRoZXNlIG1lYXN1cmVzLCBpbiByZXNwZWN0IG9mIHRoZSBuYXRpb25hbC9yZWdpb25hbC9sb2NhbCBlY29ub215LCBnaXZlbiB0aGUgRVUgcmVmZXJlbmR1bSByZXN1bHQsIGlzIHN0aWxsIHRvIGJlIGRldGVybWluZWQuXFxuXFxuVGhlIGF1dGhvcml0eSBpcyB0YWtpbmcgZm9yd2FyZCBhIHJhbmdlIG9mIGFjdGlvbnMgdG8gaW1wcm92ZSBtYXR0ZXJzIGhlcmUuIFRoZXNlIGluY2x1ZGU6LVxcblxcbiogUHJvbW90aW5nIGdyb3d0aCBvZiB0aGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIHNlY3RvclxcbiogQ3JlYXRpbmcgbmV3IGVjb25vbWljIGFzc2V0cyB0byB0aGUgc291dGggb2YgdGhlIGFpcnBvcnQgYW5kIHRvIGVuY291cmFnZSBtb3JlIGhpZ2ggdmFsdWUgR1ZBIGJ1c2luZXNzZXMgdG8gYmFzZSB0aGVtc2VsdmVzIGluIHRoZSBhcmVhXFxuKiBEZXZlbG9wbWVudCBvZiBEaXN0cmljdCAvIEJvcm91Z2ggUGxhY2UgUGxhbnMgYW5kIHRoZSBlc3RhYmxpc2htZW50IG9mIEdyb3d0aCBCb2FyZHMgdG8gc3VwcG9ydCB0aGVzZSBwbGFucy5cXG5cXG5Ub2dldGhlciB0aGVzZSBmb3JtIHRoZSBXZXN0IFN1c3NleCBHcm93dGggUGxhbi4gVGhlIGFtYWxnYW1hdGVkIEdyb3d0aCBQbGFuIHdhcyBpbiBwbGFjZSBieSBEZWNlbWJlciAyMDE1LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKjIwMTUgR1ZBIERhdGEgUmVsZWFzZSoqXFxuXFxuLSAtIC1cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIFJlZ2lvbmFsIEdyb3NzIFZhbHVlIEFkZGVkIChJbmNvbWUgQXBwcm9hY2gpIGRhdGEgd2hpY2ggaW5jbHVkZXMgZGF0YSBmb3IgV2VzdCBTdXNzZXggaXMgcHVibGlzaGVkIGFubnVhbGx5LCB0aGUgbGF0ZXN0IHJlbGVhc2Ugd2FzIGluIERlY2VtYmVyIDIwMTUgYW5kIHJlbGF0ZXMgdG8gdGhlIHllYXJzIHVwdG8gMjAxNDsgdGhlIG5leHQgcmVsZWFzZSBpcyBleHBlY3RlZCBpbiBEZWNlbWJlciAyMDE2LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CNkYzODQ4Ny00OUExLTRFNTUtODZBNS02Mjk3QTZDOTRBNDZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgaXMgYSByZWNvZ25pc2VkIG1lYXN1cmUgb2YgZWNvbm9taWMgYWN0aXZpdHkgYnJvYWRseSBkZWZpbmVkIGFzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHZhbHVlIG9mIHRoZSBnb29kcyBhbmQgc2VydmljZXMgcHJvZHVjZWQgYW5kIHRoZSBjb3N0IG9mcmF3IG1hdGVyaWFscyBhbmQgb3RoZXIgaW5wdXRzIHVzZWQgaW4gcHJvZHVjdGlvbi4gSW4gRGVjZW1iZXIgMjAxNSBPTlMgcmVsZWFzZWQgdGhlIGxhdGVzdCBzdWIgcmVnaW9uYWwgZXN0aW1hdGVzIGZvciBHVkEuIFRoZSBkYXRhIGlzIGF2YWlsYWJsZSBhdDpcXG5cXG5baHR0cDovL3d3dy5vbnMuZ292LnVrL29ucy9yZWwvcmVnaW9uYWwtYWNjb3VudHMvcmVnaW9uYWwtZ3Jvc3MtdmFsdWUtYWRkZWQtLWluY29tZS1hcHByb2FjaC0vZGVjZW1iZXItMjAxNS9zdGItcmVnaW9uYWwtZ3ZhLWRlYy0yMDE1Lmh0bWxdWzBdXFxuXFxuVXAgdW50aWwgdGhpcyByZWxlYXNlIEdWQSBkYXRhIGhhcyBiZWVuIGF2YWlsYWJsZSBmb3IgZm9ybWVyIE5VVFMzIGdlb2dyYXBoaWVzIHdoaWNoIGNvdmVyZWQgdGhlIFdlc3QgU3Vzc2V4IENvdW50eSBhcmVhLiBIb3dldmVyLHRoaXMgbGF0ZXN0IGRhdGEgaXMgcHVibGlzaGVkLCBmb3IgdGhlIGZpcnN0IHRpbWUsIHVzaW5nIHJldmlzZWQgTlVUUzMgZ2VvZ3JhcGhpZXMsIHdoaWNoIHNwbGl0cyB0aGUgY291bnR5IGludG8gdHdvIHRvIGluY2x1ZGU6XFxuXFxuIFxcblxcbjEuIFdlc3QgU3Vzc2V4IOKAkyBTb3V0aCBXZXN0IChXU1NXKSDigJMgbWFkZSB1cCBvZiBDaGljaGVzdGVyLCBBcnVuLCBBZHVyIGFuZCBXb3J0aGluZ1xcbjEuIFdlc3QgU3Vzc2V4IOKAkyBOb3J0aCBFYXN0IChXU05FKSDigJMgbWFkZSB1cCBvZiBDcmF3bGV5LCBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4XFxuIFxcblxcblRoaXMgc3BsaXQgaXMgaGVscGZ1bCBhcyBXZXN0IFN1c3NleCDigJNTb3V0aCBXZXN0IChXU1NXKSBtYXRjaGVzIHdpdGggQ29hc3RhbCBXZXN0IFN1c3NleCBhbmQgV2VzdCBTdXNzZXggTm9ydGggRWFzdCAoV1NORSkgd2l0aCB0aGF0IGFyZWEgb2YgV2VzdCBTdXNzZXggdGhhdCBsaWVzIHdpdGhpbiBHYXR3aWNrIERpYW1vbmQuIFNvIGZvciB0aGUgZmlyc3QgdGltZSB3ZSBoYXZlIOKAmG9mZmljaWFs4oCZIGZpZ3VyZXMgZm9yIHRoZXNlIHR3byB2ZXJ5IGRpZmZlcmVudCBlY29ub21pYyBhcmVhcyBpbiBXZXN0IFN1c3NleC4gVGFraW5nIGludG8gYWNjb3VudCB0aGUgc3BsaXQgdGhhdCBoYXMgb2NjdXJyZWQgaW4gU3VycmV5IHNvIHRoYXQgU3VycmV5IEVhc3QgKEVwc29tIGFuZCBFd2VsbCwgVGFuZHJpZGdlLCBNb2xlIFZhbGxleSwgUmVpZ2F0ZSBhbmQgQmFuc3RlZCksIHRvZ2V0aGVyIHdpdGggV2VzdCBTdXNzZXggTm9ydGggRWFzdCBtYXRjaGVzIHRoZSB3aG9sZSBHYXR3aWNrIERpYW1vbmQgYXJlYS4gVGhlIGxhdGVzdCBzZXQgb2YgZGF0YSBpbmNsdWRlcyB0cmVuZHMgZnJvbSAxOTk3LTIwMTQuIE5CIOKAkyB0aGUgMjAxNCBlc3RpbWF0ZXMgYXJlIHByb3Zpc2lvbmFsIGFuZCBzdWJqZWN0IHRvIHJldmlldyBieSBPTlMuXFxuXFxuIFxcblxcbldoaWxzdCB0aGUgZmlndXJlcyBhcmUgbm90IHJlbGVhc2VkIGJ5IE9OUyBmb3IgV2VzdCBTdXNzZXggQ291bnR5IGFyZWEgdGhleSBjYW4gYmUgZXN0aW1hdGVkIGJ5IGNvbWJpbmluZyB0aGUgdHdvIG5ldyBhcmVhcy5cXG5cXG5bMF06IGh0dHA6Ly93d3cub25zLmdvdi51ay9vbnMvcmVsL3JlZ2lvbmFsLWFjY291bnRzL3JlZ2lvbmFsLWdyb3NzLXZhbHVlLWFkZGVkLS1pbmNvbWUtYXBwcm9hY2gtL2RlY2VtYmVyLTIwMTUvc3RiLXJlZ2lvbmFsLWd2YS1kZWMtMjAxNS5odG1sXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzE1OUJFRjMwLTdCNzItNDYzRC04Nzk3LTYzMDY2RTkzMEIxMFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqIFdpdGhpbiB0aGUgU291dGggRWFzdCByZWdpb24gQmVya3NoaXJlIGhhcyB0aGUgaGlnaGVzdCBHVkEgb2YgYWxsIGFyZWFzIGF0IMKjMzQsNTA2bSBhbmQgdGhlIElzbGUgb2YgV2lnaHQgdGhlIGxvd2VzdCAtIMKjMzA3MW0uXFxuXFxuKiBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IGlzIHJhbmtlZCA3dGggKG91dCBvZiAyMSBhcmVhcyBpbiB0aGUgcmVnaW9uKSBhdCDCozExLDE0Nm0sIGFuZCBXZXN0IFN1c3NleCBTb3V0aCBXZXN0IDExdGggYXQgwqM5LDM2MG0sIG1lYW5pbmcgdGhhdCB0aGUgV2VzdCBTdXNzZXggZWNvbm9teSBhcyBhIHdob2xlIGlzIGVzdGltYXRlZCB0byBiZSDCozIwLDUwNm1cXG5cXG4qIEFsbCBhcmVhcyB3aXRoaW4gdGhlIFNvdXRoIEVhc3QgZXhwZXJpZW5jZWQgZ3Jvd3RoIGluIEdWQSBvdmVyIHRoZSB5ZWFyIDIwMTMtMjAxNC4gV2VzdCBLZW50IGV4cGVyaWVuY2VkIHRoZSBoaWdoZXN0IGdyb3d0aCBhdCA0LjklIGFuZCBOb3J0aCBIYW1wc2hpcmUgdGhlIGxvd2VzdCBhdCAwLjglSW4gdGhlIHByZXZpb3VzIHllYXIsIDIwMTItMjAxMyBXZXN0IFN1c3NleCBOb3J0aCBFYXN0LCBhbmQgU3VycmV5IEVhc3Qgc2F3IHNpZ25pZmljYW50IHJhdGVzIG9mIGdyb3d0aCDigJMgV1NORSBoYWQgZXhwZXJpZW5jZWQgdGhlIDNyZCBoaWdoZXN0IHJhdGUgb2YgZ3Jvd3RoIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiwgaG93ZXZlciBpbiBib3RoIGFyZWFzIHRoaXMgZ3Jvd3RoIGFzIGZhbGxlbiBjb25zaWRlcmFibHkgZHVyaW5nIDIwMTMtMTQgYWZmZWN0aW5nIGdyb3d0aCBpbiBHYXR3aWNrIERpYW1vbmQgd2hpY2ggaXMgbGVzcyB0aGFuIGhhbGYgd2hhdCBpdCB3YXMgaW4gMjAxMi3igJgxMy5cXG5cXG4qIFdTU1cgaGFzIGNvbnRpbnVhbGx5IHNlZW4gbG93ZXIgcmF0ZXMgZm9yIGdyb3d0aCBpbiBHVkEgdGhhbiBXU05FIGFuZCBpbmRlZWQgbG93ZXIgcmF0ZXMgdGhhbiB0aGUgcmVnaW9uYWwgYW5kIG5hdGlvbmFsIGF2ZXJhZ2U7IGdyb3d0aCBpbiBXZXN0IFN1c3NleCBDb3VudHkgaXMgdmVyeSBtdWNoIGJ1b3llZCB1cCBieSB0aGUgZ3Jvd3RoIHRha2luZyBwbGFjZSBpbiB0aGUgTm9ydGggRWFzdCBvZiB0aGUgY291bnR5LiBJbiB0aGUgbGFzdCB0ZW4geWVhcnMgZ3Jvd3RoIGluIHRoZSBub3J0aCBlYXN0IG9mIHRoZSBjb3VudHkgaGFzIGJlZW4gaGlnaGVyIHRoYW4gdGhlIG5hdGlvbmFsIGFuZCByZWdpb25hbCBhdmVyYWdlLlxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkdWQSBwZXIgaGVhZCoqXFxuXFxuKipHcm9zcyBWYWx1ZSBBZGRlZCBwZXIgaGVhZCoqXFxuXFxuR3Jvc3MgVmFsdWUgQWRkZWQgcGVyIGhlYWQgdXNlcyBhIHdvcmtwbGFjZS1iYXNlZCBudW1lcmF0b3IgaS5lLiB0aGF0IEdWQSBwcm9kdWNlZCBpbiB0aGF0IGFyZWEgZGl2aWRlZCBieSB0aGUgcmVzaWRlbmNlIGJhc2VkIGRlbm9taW5hdG9yICh0b3RhbCByZXNpZGVudGlhbCBwb3B1bGF0aW9uKS4gSXQgaXMgYSBrZXkgbWVhc3VyZSBvZiB0aGUgd2VhbHRoIGdlbmVyYXRpb24gY2FwYWJpbGl0eSBvZiBhbiBhcmVh4oCZcyBlY29ub215LiBIb3dldmVyIGl0IGNhbiBwcm92aWRlIHNsaWdodGx5IG1pc2xlYWRpbmcgcmVzdWx0cyBhcyB0aGUgbWVhc3VyZXMgYXJlIG1peGVkIGJldHdlZW4gd29ya3BsYWNlIGJhc2VkIEdWQSBnZW5lcmF0ZWQgaW4gdGhhdCBhcmVhIGFuZCB0aGUgcmVzaWRlbnQgYmFzZWQgcG9wdWxhdGlvbiwgdGhlIHdlYWx0aCBjcmVhdGlvbiBvZiB0aG9zZSB3aG8gY29tbXV0ZSBpcyBjb3VudGVkIGF0IHRoZSB3b3JrcGxhY2Ugc28gdGhhdCBhcmVhcyBvZiBzaWduaWZpY2FudCBvdXQtY29tbXV0aW5nIG1heSBoYXZlIHRoZSBlZmZlY3Qgb2YgdW5kZXJzdGF0aW5nIEdWQSBsZXZlbHMuIEluIFdlc3QgU3Vzc2V4IG1hbnkgcmVzaWRlbnQgd29ya2VycyBtYXkgY29tbXV0ZSB0byBlLmcuIExvbmRvbi9TdXJyZXkvIEJyaWdodG9uIGFuZCBIb3ZlIGV0Yy4sIHNvIHRoZSB3ZWFsdGggcmVhY3Rpb24gb2YgdGhvc2Ugd29ya2VycyB3aWxsIGJlIGNvdW50ZWQgdGhlcmUuIENvbnZlcnNlbHksIGZvciBleGFtcGxlLCBMb25kb27igJlzIEdWQSBwZXIgaGVhZCBmaWd1cmVzIHdpbGwgYmUgb3ZlcnN0YXRlZCBhcyBMb25kb24gaXMgc3VjaCBhIG1ham9yIGltcG9ydGVyIG9mIGxhYm91ci4gVGhvc2UgYXJlYXMgd2l0aCBhIGhpZ2ggcmV0aXJlbWVudCBhbHNvIHByb2R1Y2UgdW5kZXJzdGF0ZWQgZXN0aW1hdGVzIG9mIEdWQSBwZXIgaGVhZC4gQ29hc3QgdG8gQ2FwaXRhbCBMRVAgaGF2ZSBwcm92aWRlZCBzb21lIGVzdGltYXRlcyBvZiBHVkEgcGVyIGpvYiB3aGljaCBpcyBhIGJldHRlciBtZWFzdXJlIG9mIHByb2R1Y3Rpdml0eSBvZiBhbiBhcmVhLCB0aG91Z2ggR1ZBIHBlciBjYXBpdGEgaXMgYSB1c2VmdWwgaW5kaWNhdG9yIG9mIGVjb25vbWljIHBlcmZvcm1hbmNlIGluIGFuIGFyZWEsIGFuZCBPTlMgZG8gbWFrZSB0aGUgZmlndXJlcyBhdmFpbGFibGUuXFxuXFxuRXN0aW1hdGVzIG9mIEdWQSBwZXIgaGVhZCBmb3IgV2VzdCBTdXNzZXggc3VnZ2VzdHMgdGhhdCBpbiAxOTk3ICh0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGN1cnJlbnQgdGltZSBzZXJpZXMpIEdWQSBwZXIgaGVhZCB3YXMgwqMxNCwwMDYgZm9yIFdlc3QgU3Vzc2V4OyBzbGlnaHRseSBsb3dlciB0aGFuIGZvciBFbmdsYW5kICjCozEzLDY3NiksIGFuZCA1JSBoaWdoZXIgdGhhbiB0aGF0IGZvciB0aGUgU291dGggRWFzdCBhdCDCozE0LDY5OC4gT3ZlciB0aW1lIGhvd2V2ZXIgR1ZBIGZpZ3VyZXMgaGF2ZSByaXNlbiBpbiBFbmdsYW5kIGFuZCB0aGUgU291dGggRWFzdCBhdCBhIGhpZ2hlciByYXRlIHRoYW4gc2VlbiBpbiBXZXN0IFN1c3NleC4gVGhlIGdhcCBpbiBHVkEgcGVyIGhlYWQgYmV0d2VlbiBXZXN0IFN1c3NleCBhbmQgdGhlIFNvdXRoIEVhc3QgaGFzIG5vdyByaXNlbiB0byA5LjElIGluIDIwMTQuXFxuXFxuWzFdIEdhdHdpY2sgRGlhbW9uZCA9IFdlc3QgU3Vzc2V4IE5FIHBsdXMgU3VycmV5IEVhc3RcXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNTUwREZEOTQtNTlBMi00MUQ5LTk0MDMtMDJDMEM5MkIxNDMzXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiogSW4gMjAxNCBHcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBwZXIgaGVhZCBvZiBwb3B1bGF0aW9uIGluY3JlYXNlZCBpbiBhbGxyZWdpb25zIGluIHRoZSBVSy4gVGhlIGhpZ2hlc3QgYW5udWFsIGdyb3d0aCB3YXMgaW4gTG9uZG9uIGF0IDUuMyUgYW5kIHRoZSBsb3dlc3QgYW5udWFsIGdyb3d0aCB3YXMgaW4gTm9ydGhlcm4gSXJlbGFuZCBhdCAxLjklLiBUaGUgU291dGggRWFzdCBleHBlcmllbmNlZCBhIGdyb3d0aCBvZiAyLjglIGxvd2VyIHRoYW4gdGhhdCBmb3IgRW5nbGFuZCBhdCAzLjclLlxcblxcbiogQXQgdGhlIHJlZ2lvbmFsIGxldmVsLCBpbiAyMDE0IExvbmRvbiBoYWQgdGhlIGhpZ2hlc3QgR1ZBIHBlciBoZWFkIGF0IMKjNDIsNjY2LCB3aGlsZSBXYWxlcyBoYWQgdGhlIGxvd2VzdCBhdCDCozE3LDU3My4gVGhlIFNvdXRoIEVhc3QgcmVnaW9uIGhhZCB0aGUgc2Vjb25kIGhpZ2hlc3QgR1ZBIHBlciBoZWFkIGF0IMKjMjcsMDEyIGFuZCBjb21wYXJlcyB3aXRoIHRoYXQgZm9yIEVuZ2xhbmQgYXQgwqMyNSwzNjcuXFxuXFxuKiBXaXRoaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uIE1pbHRvbiBLZXluZXMgaGFkIHRoZSBoaWdoZXN0IEdWQSBwZXIgaGVhZGF0IMKjMzksNzA5IGNvbXBhcmVkIHdpdGggTWVkd2F5IHdoaWNoIGhhZCB0aGUgbG93ZXN0IGxldmVsIGF0IMKjMTcsMDM4LiBCb3RoIE5vcnRoIEVhc3QgV2VzdCBTdXNzZXgsIGFuZCBTb3V0aCBXZXN0IFdlc3QgU3Vzc2V4IGhhZCBsZXZlbHMgb2YgR1ZBIHBlciBoZWFkIGxvd2VyIHRoYW4gdGhlIHJlZ2lvbmFsIGF2ZXJhZ2UgYXQgwqMyNiw2OTUgKDZ0aCBvdXQgb2YgMjEpIGFuZCDCozIxLDI3NCAocmFua2VkIDE3dGgpIHJlc3BlY3RpdmVseS5cXG5cXG4qIE5vIGFyZWFzIG9mIHRoZSBTb3V0aCBFYXN0IGhhZCBleHBlcmllbmNlZCBhIGZhbGwgaW4gR1ZBIHBlciBoZWFkIGluIHRoZSBsYXN0IHllYXIuIFdlc3QgS2VudCBzYXcgdGhlIGhpZ2hlc3QgaW5jcmVhc2Ugb3ZlciB0aGUgeWVhciAyMDEzIOKAkyAyMDE0IGF0IDQuOSUsIFdlc3QgU3Vzc2V4IOKAkyBTb3V0aCBXZXN0IGFuZCBXZXN0IFN1c3NleCDigJMgTm9ydGggRWFzdCBoYXZlIHNlZW4gc2ltaWxhciBsZXZlbHMgb2YgZ3Jvd3RoIGluIEdWQSBwZXIgaGVhZCBhdCAxLjglIGFuZCAxLjclLiBGb3IgV2VzdCBTdXNzZXggTm9ydGggRWFzdCB0aGlzIHdhcyBjb25zaWRlcmFibHkgbG93ZXIgdGhhbiB0aGF0IHNlZW4gc2luY2UgMjAxMSB3aGVuIGFubnVhbCBncm93dGggaGFkIGJlZW4gb3ZlciA2JS5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKioyMDE0IEdWQSBEYXRhIFJlbGVhc2UqKlxcblxcbi0gLSAtXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiBcXG5cXG5Hcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBpcyBhIHJlY29nbmlzZWQgbWVhc3VyZSBvZiBlY29ub21pYyBhY3Rpdml0eSBicm9hZGx5IGRlZmluZWQgYXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdmFsdWUgb2YgdGhlIGdvb2RzIGFuZCBzZXJ2aWNlcyBwcm9kdWNlZCBhbmQgdGhlIGNvc3Qgb2YgcmF3IG1hdGVyaWFscyBhbmQgb3RoZXIgaW5wdXRzIHVzZWQgaW4gcHJvZHVjdGlvbi4gSW4gRGVjZW1iZXIgMjAxNCBPTlMgcmVsZWFzZWQgdGhlIGxhdGVzdCBzdWIgcmVnaW9uYWwgZXN0aW1hdGVzIGZvciBHVkEuVGhlIG5leHQgdXBkYXRlIG9mIHRoaXMgZGF0YSBpcyBleHBlY3RlZCBpbiBEZWNlbWJlciAyMDE1LiBUaGUgZGF0YSBpcyBhdmFpbGFibGUgYXQ6XFxuXFxuW2h0dHA6Ly93d3cub25zLmdvdi51ay9vbnMvcHVibGljYXRpb25zL3JlLXJlZmVyZW5jZS10YWJsZXMuaHRtbD9lZGl0aW9uPXRjbSUzQTc3LTMzOTU5OF1bMF1cXG5cXG5UaGUgbGF0ZXN0IChwcm92aXNpb25hbCkgZmlndXJlIGZvciBHcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBzdWdnZXN0cyB0aGF0IGF0IDIwMTMgR1ZBIGZvciBXZXN0IFN1c3NleCB3YXMgwqMxOSw4NDhtbiwgbWFraW5nIHVwIGFyb3VuZCA4LjUlIG9mIHRoZSBTb3V0aCBFYXN0IEdWQS4gVGhpcyBjb250cmlidXRpb24gaGFzIGZhbGxlbiBmcm9tIG92ZXIgOSUgaW4gMTk5Ny5cXG5cXG5UaGUgU291dGggRWFzdCBlY29ub215IGV4cGFuZGVkIGJ5IDIuOCUgYWNjb3JkaW5nIHRvIHRoZXNlIHByZWxpbWluYXJ5IGVzdGltYXRlcyBmcm9tIE9OUywgdGhpcyB3YXMgbG93ZXIgdGhhbiBncm93dGggYWNyb3NzIHRoZSBVSywgTG9uZG9uLCBFYXN0IG9mIEVuZ2xhbmQgYW5kIHRoZSBTb3V0aCBXZXN0LiBUaGUgcHJvdmlzaW9uYWwgZXN0aW1hdGVzIG9mIEdWQSBmb3IgY291bnR5IGFuZCB1bml0YXJ5IGF1dGhvcml0aWVzIHNob3cgdGhhdCBXZXN0IFN1c3NleCwgYXQgNC40JSBncm93dGgsIGhhZCB0aGUgZm91cnRoIGhpZ2hlc3QgZ3Jvd3RoIGluIHRoZSBTb3V0aCBFYXN0IGJldHdlZW4gMjAxMiBhbmQgMjAxMywgbGFnZ2luZyBiZWhpbmQgU291dGhhbXB0b24gKDklKSwgTWlsdG9uIEtleW5lcyAoNC45JSkgYW5kIEJyaWdodG9uIGFuZCBIb3ZlICg0LjclKSwgc28gd2FzIHRoZSBmYXN0ZXN0IGdyb3dpbmcgY291bnR5IGluIHRoZSBTb3V0aCBFYXN0LlxcblxcbkluIDE5OTcgV2VzdCBTdXNzZXggaGFkIGEgaGlnaGVyIEdWQSBwZXIgaGVhZCB0aGFuIEVuZ2xhbmQgYW5kIHdhcyBhdCBhIHNpbWlsYXIgbGV2ZWwgYXQgwqMxNCwxMTQgdG8gdGhlIFNvdXRoIEVhc3QgYXZlcmFnZSAowqMxNCw3NDApLiBTaW5jZSBhcm91bmQgMjAwNCBob3dldmVyIGNvdW50eSBHVkEgcGVyIGhlYWQgaGFzIGJlZW4gZ2VuZXJhbGx5IGxvd2VyIHRoYW4gdGhhdCBzZWVuIG5hdGlvbmFsbHkgYW5kIGdyb3d0aCBpbiBXZXN0IFN1c3NleCBoYXMgYmVlbiBsb3dlciB0aGFuIHRoYXQgc2VlbiByZWdpb25hbGx5IHNvIHRoZSBnYXAgYmV0d2VlbiB0aGUgcmVnaW9uYWwgYW5kIGNvdW50eSBHVkEgcGVyIGhlYWQgZmlndXJlIGhhcyB3aWRlbmVkLiBJbiAyMDEzIHRoZSBHVkEgcGVyIGhlYWQgZm9yIFdlc3QgU3Vzc2V4IHdhcyBlc3RpbWF0ZWQgdG8gYmUgwqMyNCwxNjUgKHByb3Zpc2lvbmFsIGZpZ3VyZXMpIGNvbXBhcmVkIGZvciB0aGUgU291dGggRWFzdCBhdmVyYWdlIGF0IMKjMjUsODQzLiBUaGUgR1ZBIGZvciBXZXN0IFN1c3NleCBpbiAyMDEzIHdhcyBhYm91dCAzLjMlIGFib3ZlIHRoZSBVSyBhdmVyYWdlIGFuZCBpdCBoYWQgaW5jcmVhc2VkIGJ5IDMuNiUgc2lnbmlmaWNhbnRseSBzbG93ZXIgdGhhbiBpbiAyMDEyICg2LjQlKSBidXQgZmFzdGVyIHRoYW4gdGhlIFVLIGF2ZXJhZ2UgYW5kIGZhc3RlciB0aGFuIGluIGFueSBvdGhlciBjb3VudHkgaW4gdGhlIFNvdXRoIEVhc3QgaW4gMjAxMy4gQXQgMy44JSBCcmlnaHRvbiBhbmQgSG92ZSBoYWQgdGhlIGZhc3Rlc3QgZ3Jvd3RoIGluIEdWQSBwZXIgaGVhZCBpbiB0aGUgU291dGggRWFzdCByZWdpb24uIEN1bXVsYXRpdmUgZ3Jvd3RoIGluIEdWQSBwZXIgaGVhZCBpbiBXZXN0IFN1c3NleCBiZXR3ZWVuIDIwMDkgYW5kIDIwMTMgd2FzIDEzLjElIG1hcmdpbmFsbHkgc2xvd2VyIHRoYW4gaW4gU3VycmV5LCBidXQgZmFzdGVyIHRoYW4gaW4gdGhlIEhhbXBzaGlyZSBDb3VudHkgQ291bmNpbCBBcmVhLCBLZW50IGFuZCBFYXN0IFN1c3NleCBhbmQgdGhlIHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBhdmVyYWdlLlxcblxcblswXTogaHR0cDovL3d3dy5vbnMuZ292LnVrL29ucy9wdWJsaWNhdGlvbnMvcmUtcmVmZXJlbmNlLXRhYmxlcy5odG1sP2VkaXRpb249dGNtJTI1MjUzQTc3LTMzOTU5OFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqIEdWQSBwZXIgaGVhZCBpcyBhIHJhdGlvIG9mIHRvdGFsICh3b3JrcGxhY2UgYmFzZWQgR1ZBKSBhbmQgdG90YWwgKHJlc2lkZW5jZSBiYXNlZCBwb3B1bGF0aW9uKS4gUmVsYXRpdmVseSBsYXJnZSBlY29ub21pY2FsbHkgaW5hY3RpdmUgcG9wdWxhdGlvbiB0ZW5kcyB0byBkZXByZXNzIEdWQSBwZXIgaGVhZCBhbmQgR1ZBIHBlciBoZWFkIGdyb3d0aCByYXRlcy4gR1ZBIHBlciBoZWFkIGlzIGEgdXNlZnVsIG1lYXN1cmUgZm9yIGNvbXBhcmluZyBhcmVhcyBvZiBkaWZmZXJlbmNlIHNpemVzXFxuXFxuKiBSZWdpb25hbCBHcm9zcyBWYWx1ZSBBZGRlZCBUYWJsZXMgKHJlbGVhc2VkIERlY2VtYmVyIDIwMTQg4oCTIE9OUylcXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNUQ4NkJGOEMtMjhFMy00Q0ZFLTk3NDUtM0Q5Rjk3RjA4N0YxXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiogU291cmNlOiBUYWJsZSAzLjIgUmVnaW9uYWwgR3Jvc3MgVmFsdWUgQWRkZWQgVGFibGVzLCBPTlNcXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlcmUgaXMgYSB0d2VsdmUgbW9udGggZGF0YSBsYWcgYmV0d2VlbiB0aGUgaGVhZGxpbmUgcHJlbGltaW5hcnkgZXN0aW1hdGUgb2Ygc3ViIHJlZ2lvbmFsIEdWQSBhbmQgdGhlIGVzdGltYXRlcyBvZiBHVkEgYnkgYnJvYWQgc2VjdG9yIHNvIHRoZSBsYXRlc3QgR1ZBIHNwbGl0IGJ5IHNlY3RvciBpcyBmb3IgMjAxMi4gVGhlIGZpZ3VyZXMgZm9yIFdlc3QgU3Vzc2V4IHN1Z2dlc3Qgc3Ryb25nIGdyb3d0aCBpbiBmaW5hbmNpYWwgYW5kIGluc3VyYW5jZSwgcmVhbCBlc3RhdGUsIGRpc3RyaWJ1dGlvbiwgdHJhbnNwb3J0LCBhY2NvbW1vZGF0aW9uIGFuZCBmb29kLCBtYW51ZmFjdHVyaW5nIGFuZCBidXNpbmVzcyBzZXJ2aWNlIHNlY3RvcnMuIEZhc3RlciBncm93dGggb3ZlcmFsbCB3YXMgaGVsZCBiYWNrIGJ5IGNvbnN0cnVjdGlvbiBhbmQgaW5mb3JtYXRpb24gYW5kIGNvbW11bmljYXRpb24uXFxuXFxuRGlzdHJpYnV0aW9uLCB0cmFuc3BvcnQsIGFjY29tbW9kYXRpb24gYW5kIGZvb2QgaXMgdGhlIGxhcmdlc3QgYnJvYWQgc2VjdG9yIGluIFdlc3QgU3Vzc2V4IGFzIGl0IGFjY291bnRzIGZvciBhcm91bmQgMjQlIG9mIHRvdGFsIEdWQS4gVGhpcyBzZWN0b3IgZXhwYW5kZWQgYnkgYXJvdW5kIDkuNyUgZnJvbSAyMDExLTEyIGNvbXBhcmVkIHRvIDIuMyUgaW4gdGhlIFVLLiBUaGUgcmVhbCBlc3RhdGUgc2VjdG9yIGluIFdlc3QgU3Vzc2V4IGlzIHRoZSBzZWNvbmQgbGFyZ2VzdCBicm9hZCBzZWN0b3Igb2YgdGhlIGVjb25vbXkgYW5kIGFjY291bnRlZCBmb3IgMTMuMyUgb2YgR1ZBLiBGaW5hbmNpYWwgYW5kIGluc3VyYW5jZSBzZXJ2aWNlcyBhY2NvdW50IGZvciBhcm91bmQgNiUgb2YgdGhlIFdlc3QgU3Vzc2V4IGVjb25vbXkuIFRoaXMgc2VjdG9yIHRob3VnaCB3YXMgdGhlIGJlc3QgcGVyZm9ybWluZyBzZWN0b3IgaW4gV2VzdCBTdXNzZXggaW4gMjAxMywgYWZ0ZXIgY29udHJhY3RpbmcgaW4gMjAxMSB0b3RhbCBvdXRwdXQgaW4gdGhpcyBzZWN0b3IgaW5jcmVhc2VkIGJ5IGFyb3VuZCAyMCUgaW4gMjAxMi5cXG5cXG5PTlMgZG8gbm90IHJlbGVhc2UgZXN0aW1hdGVzIG9mIEdWQSBhdCBkaXN0cmljdCBhdXRob3JpdHkgbGV2ZWwuXFxuXFxuIFwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CMTc2MjhBNi00NDU4LTREQUQtOEIxQi0xNTZFOUMwOTA5N0RcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKiBTb3VyY2U6IC0gQ29hc3QgdG8gQ2FwaXRhbCBMRVAgLWZpZ3VyZXMgaW4gaXRhbGljcyBhcmUgZXN0aW1hdGVzLCBmaWd1cmVzIGZyb20gQ29hc3QgdG8gQ2FwaXRhbCBhbmQgV2VzdCBTdXNzZXggZnJvbSBPTlNcXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiSG93ZXZlciwgZXN0aW1hdGVzIGZvciBXZXN0IFN1c3NleCBkaXN0cmljdHMgYW5kIGJvcm91Z2hzIGhhdmUgYmVlbiBlc3RpbWF0ZWQgYnkgQ29hc3QgdG8gQ2FwaXRhbCBMRVAgdXNpbmcgdGhlIGxhdGVzdCB3b3JrcGxhY2UgYmFzZWQgbWVhbiBncm9zcyB3ZWVrbHkgZWFybmluZ3MgLCB0b3RhbCBlbXBsb3llZXMgYW5kIHRoZSBiZW5jaG1hcmsgb2YgdGhlIENvdW50eSBsZXZlbCByZWdpb25hbCBHVkEgZXN0aW1hdGVzIGZyb20gT05TLiBFc3RpbWF0ZXMgc3VnZ2VzdCB0aGF0IEFydW4gaGFzIHRoZSBsb3dlc3QgR1ZBIHBlciBoZWFkLCBhbmQgdW5zdXJwcmlzaW5nbHkgQ3Jhd2xleSB0aGUgaGlnaGVzdCBhdCDCozU3LDI5MC4gR1ZBIGZpZ3VyZXMgYXJlIHdvcmtwbGFjZS1iYXNlZCBpLmUuIGJhc2VkIG9uIG91dHB1dCBwcm9kdWNlZCBhdCB0aGUgd29ya3BsYWNlOyBHVkEgcGVyIGhlYWQgaXMgd2hlcmUgR1ZBIGlzIGV4cHJlc3NlZCBhcyBhIHZhbHVlIHBlciByZXNpZGVudCBwb3B1bGF0aW9uLGFuZCB0aGVyZWZvcmUgaXMgbWl4aW5nIHdvcmtwbGFjZSBhbmQgcmVzaWRlbnQgYmFzZWQgbWVhc3VyZXMuIFdlIG5lZWQgdG8gYmUgbWluZGZ1bCB0aGF0IEdWQSBwZXIgaGVhZCBjYW4gcHJvZHVjZSBzbGlnaHRseSBtaXNsZWFkaW5nIHJlc3VsdHMgc28gdGhhdCB3aGVyZSB0aGVyZSBpcyBhIGhpZ2ggbGV2ZWwgb2YgY29tbXV0aW5nIG91dCBvZiBhbiBhcmVhIHRoZSBHVkEgcGVyIGhlYWQgZmlndXJlIGNvdWxkIGJlIHVuZGVyc3RhdGVkIGFzIHRoZSB3ZWFsdGggY3JlYXRpb24gb2YgdGhvc2Ugd2hvIGNvbW11dGUgaXMgY291bnRlZCBhdCB0aGVpciB3b3JrcGxhY2UuIEFyZWFzIHdoZXJlIHRoZXJlIGlzIGEgaGlnaCBsZXZlbCBvZiBpbi1jb21tdXRpbmcgY2FuIHByb2R1Y2Ugb3ZlciBzdGF0ZWQgbGV2ZWxzIG9mIEdWQSBwZXIgaGVhZC4gVGhhdCBzYWlkIEdWQSBwZXIgaGVhZCBtZWFzdXJlcyBhcmUgd2lkZWx5IHVzZWQgdG8gaW5kaWNhdGUgdGhlIGVjb25vbWljIHdlbGwtYmVpbmcgb2YgYW4gYXJlYSBhbmQgdG8gcHJvdmlkZSBjb21wYXJpc29uL2JlbmNobWFya2luZyB3aXRoIG90aGVyIGFyZWFzLlxcblxcbldTQ0MgaXMgY29tbWl0dGVkIHRvIGltcHJvdmluZyBHVkEgcGVyIGNhcGl0YSBpbiBXZXN0IFN1c3NleCB3aGljaCBpcyBjdXJyZW50bHkgYmVsb3cgdGhhdCBvZiBvdXIgbmVpZ2hib3VycyBhbmQgdGhlIFNvdXRoIEVhc3QgYXZlcmFnZSBhbmQgYXMgYSByZXNwb25zZSwgaXMgZGV2ZWxvcGluZyBhcHByb2FjaGVzIHRoYXQsIG92ZXIgdGhlIGxvbmdlciB0ZXJtICxpcyBpbnRlbmRlZCB0byBlbmNvdXJhZ2UgZWNvbm9taWMgZ3Jvd3RoLiBUaGUgaW5pdGlhdGl2ZXMgaW5jbHVkZSB0aGUgZGV2ZWxvcG1lbnQgb2YgYSBzZXJpZXMgb2YgQm9sZCBJZGVhcywgd2hpY2gsIGlmIHN1Y2Nlc3NmdWwgc2hvdWxkIGNyZWF0ZSBhIGVuY291cmFnZSBlY29ub21pYyBhY3Rpdml0eSB0aGF0IHdpbGwgcG9zaXRpdmVseSBhZmZlY3QgdGhlIFdlc3QgU3Vzc2V4IEVjb25vbXksIHRoZXNlIGlkZWFzIGJ1aWxkIG9uIHRoZSBjb3VudHnigJlzIGV4aXN0aW5nIGVjb25vbWljIGFzc2V0cyB0byBkcmF3IG1vcmUgaGlnaCB2YWx1ZSBqb2JzIGludG8gdGhlIGFyZWEsIHNlY29uZGx5IHRoZXkgaW50ZW5kIHRvIGxldmVyYWdlIHRoZSBDb3VudHnigJlzIGxvY2F0aW9uIHRvIExvbmRvbiwgdG8gYXR0cmFjdCBDYXBpdGFsL3MgY3VycmVudCBhbmQgZnV0dXJlIHlvdW5nIHdlYWx0aCBjcmVhdG9ycyBpbnRvIHRoZSBjb3VudHkuXFxuXFxuVGhlIEhlYWx0aCBhbmQgTGlmZSBTY2llbmNlcyBzZWN0b3IgaGFzIGJlZW4gaWRlbnRpZmllZCBhcyBiZWluZyBhIHByaW9yaXR5IHNlY3RvciBmb3IgZ3Jvd3RoIGluIFdlc3QgU3Vzc2V4LCBhbmQgdGhlIENvdW5jaWwgaXMgY29uc2lkZXJpbmcgaG93IGJlc3QgdG8gaW52ZXN0IGludG8gdGhlIHNlY3Rvci4gQSBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgY2x1c3RlciBlbmdhZ2VtZW50IGV2ZW50IGZvciBidXNpbmVzc2VzIGFuZCBrZXkgcGFydG5lcnMgd2FzIGhlbGQgaW4gSnVseSBicmluZ2luZyB0b2dldGhlciBsb2NhbCBjb21wYW5pZXMgYWxvbmcgd2l0aCBwYXJ0bmVycywgc3VjaCBhcyBob3NwaXRhbHMsIENDR3MgYW5kIHVuaXZlcnNpdGllcyBhbmQgY3JlYXRpbmcgYW4gb3Bwb3J0dW5pdHkgZm9yIG5ldHdvcmtpbmcgYXMgd2VsbCBpbmZvcm1pbmcgdGhlIGRlYmF0ZSBvbiBob3cgaW52ZXN0bWVudHMgc2hvdWxkIGJlIGJlc3QgbWFkZSB0byBoZWxwIGdyb3d0aCBhbmQgd2hhdCByb2xlIHBhcnRuZXJzIGNhbiBwbGF5IGluIGRldmVsb3BpbmcgdGhlIHNlY3Rvci5cXG5cXG5JdCBpcyB0aGUgY291bmNpbOKAmXMgYW1iaXRpb24gdG8gY3JlYXRlIG5ldyBlY29ub21pYyBhc3NldHMgdG8gdGhlIHNvdXRoIG9mIEdhdHdpY2sgQWlycG9ydCBhbmQgdG8gZW5jb3VyYWdlIG1vcmUgaGlnaCB2YWx1ZSBHVkEgYnVzaW5lc3NlcyB0byBiYXNlIHRoZW1zZWx2ZXMgaW4gdGhlIGFyZWEgYW5kIGlzIGV4cGxvcmluZyB0aGUgaWRlYSBvZiBlc3RhYmxpc2hpbmcgYSBtdWx0aS10ZW5hbnRlZCBjb2xkIGNoYWluIHN0b3JhZ2UgZmFjaWxpdHkgZm9yIHVzZSBieSBwaGFybWFjZXV0aWNhbCBhbmQgYmlvIGVuZ2luZWVyaW5nIGNvbXBhbmllcywgaW4gY2xvc2UgcHJveGltaXR5IHRvIEdhdHdpY2sgQWlycG9ydC4gVGhlIGZhY2lsaXR5IHdvdWxkIGJlIGludGVncmFsbHkgbGlua2VkIHRvIENvYXN0IHRvIENhcGl0YWzigJlzIFN0cmF0ZWdpYyBFY29ub21pYyBQbGFu4oCZcyBhbWJpdGlvbnMgdG8gZ3JvdyB0cmFkZSB3aXRoIHRoZSBBc3NvY2lhdGlvbiBvZiBTb3V0aGVhc3QgQXNpYSAoQVNFQU4pIE5hdGlvbnMuIEdhdHdpY2sgaXRzZWxmIGhhcyByb3V0ZSBzdHJhdGVnaWVzIGFyb3VuZCBBU0VBTiBOYXRpb25zLCBhbmQgdGhlIGRlbWFuZCBmb3IgaGVhbHRoY2FyZSBwcm9kdWN0cywgc2VydmljZXMgYW5kIGlubm92YXRpb24gaXMgZ3Jvd2luZyBodWdlbHkgaW4gdGhvc2Ugc2VjdG9ycy5cXG5cXG5UaGUgV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gd2FzIGxhdW5jaGVkIGluIHRoZSBlYXJseSBzdW1tZXIgYWltaW5nIHRvIGFwcGVhbCB0byB5b3VuZyB1cmJhbiBwcm9mZXNzaW9uYWxzIGxpdmluZyBpbiBMb25kb24sIGJ5IHBvc2l0aW9uaW5nIFdlc3QgU3Vzc2V4IGFzIGEgJ2dvIHRvJyBwbGFjZSBmb3IgaGVhbHRoeSwgYWN0aXZlLCBvdXRkb29yIHNob3J0IGJyZWFrcy4gVGhlIGNhbXBhaWduIGFuZCBjb3JyZXNwb25kaW5nIHdlYnNpdGUgW3d3dy53ZXN0LXN1c3NleC13ZWVrZW5kcy5jb21dWzBdIHdhcyBsYXVuY2hlZCBvbiAxNHRoIEp1bmUgYW5kIHNvIGZhciBoYXZlIHNlZW4gaW1wcmVzc2l2ZSBwcmVsaW1pbmFyeSBhbmFseXRpY3MgcmVzdWx0cy4gQ2FtcGFpZ24gdmlzdWFscyBhbmQgZnVsbC1wYWdlIGVkaXRvcmlhbHMgaGF2ZSBiZWVuIGZlYXR1cmVkIGluIGJvdGggdGhlIE1ldHJvIGFuZCBFdmVuaW5nIFN0YW5kYXJkLiBUaGVyZSBpcyBjdXJyZW50bHkgc29tZSBmb2xsb3ctdXAgd29yayB1bmRlcndheSB0aGF0IHdpbGwgYXNzZXNzIHRoZSBlZmZlY3RpdmVuZXNzIG9mdGhlIGNhbXBhaWduIHRvIGRhdGUuXFxuXFxuSW4gYWRkaXRpb24gRGlzdHJpY3QgLyBCb3JvdWdoIFBsYWNlIFBsYW5zIGFyZSBiZWluZyBkZXZlbG9wZWQgYW5kIEdyb3d0aCBCb2FyZHMgaGF2ZSBiZWVuIGVzdGFibGlzaGVkIHRvIHN1cHBvcnQgdGhlaXIgZGV2ZWxvcG1lbnQuIFRvZ2V0aGVyIHRoZXNlIHdpbGwgZm9ybSB0aGUgV2VzdCBTdXNzZXggR3Jvd3RoIFBsYW4sIGEgY2xlYXIgSW52ZXN0bWVudCBhbmQgRGVsaXZlcnkgUGxhbiB3aGljaCB3aWxsIGVuc3VyZSB0aGF0IGNyb3NzIGNvdW50eSBpc3N1ZXMgYXJlIGFkZHJlc3NlZCDigJMgZS5nLiBzdHJhdGVnaWMgcm9hZCwgcmFpbCwgdHJhbnNwb3J0LCBza2lsbHMsIHV0aWxpdGllcywgTkhTLCBTRE5QOyB0aGF0IGNyb3NzIGF1dGhvcml0eSAvIHN0YWtlaG9sZGVyIGZ1bmRpbmcgb3Bwb3J0dW5pdGllcywgcHJpb3JpdGllcyBhbmQgcHJvcG9zYWxzIGFyZSBhZGRyZXNzZWQgYW5kIHdpbGwgcHJvdmlkZSBhIGNsZWFyIGxvYmJ5aW5nIHRvb2wgdGhhdCB3aWxsIHNlY3VyZSBmdW5kaW5nLiBUaGUgYW1hbGdhbWF0ZWQgR3Jvd3RoIFBsYW4gd2lsbCBiZSBkcmFmdGVkIGJ5IGVuZCBEZWNlbWJlciAyMDE1LlxcblxcblswXTogaHR0cDovL3d3dy53ZXN0LXN1c3NleC13ZWVrZW5kcy5jb21cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQ29tcGFyaXNvbiBvZiBtZWRpYW4gZWFybmluZ3Mgd2l0aGluIFdlc3QgU3Vzc2V4IERpc3RyaWN0IGFuZCBCb3JvdWdoc1xcblxcblwifSx7XCJ0eXBlXCI6XCJ2aXpcIixcImRhdGFzZXRcIjpcIjJjYjgtajhzMlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDb21wYXJpc29uIG9mIEdWQSBhZ2FpbnN0IHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBwZXJmb3JtYW5jZSBvdmVyIHRpbWVcIn0se1widHlwZVwiOlwidml6XCIsXCJkYXRhc2V0XCI6XCJwaTI0LThmdmJcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkluY3JlYXNpbmcgd29ya3BsYWNlIGJhc2VkIEdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIHBlciBoZWFkIHRvIGJlIGFib3ZlIHRoZSBTb3V0aCBFYXN0IGF2ZXJhZ2UgYnkgMjAyMlwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOmZhbHNlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJcIixcInRpdGxlX2ltYWdlXCI6XCIvYXBpL2Fzc2V0cy8zRjUwOUI4Qy1CNzE3LTRFN0UtQjQxQi00MDdENzVDRkQ5RjhcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMTk5Ny0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiLCo3MgcGVyIGhlYWQiLCJ0YXJnZXQiOjIxMTgwLCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjoyNzg0NywibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiIyNzlkLW5rc2YifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MTk5N30sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJpbmNyZWFzZVwiLFwidGFyZ2V0X3R5cGVcIjpcImFic29sdXRlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn0sXCJ0eXBlXCI6XCJzdGF0aWNcIn0sXCJuYW1lXCI6XCJHcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBwZXIgaGVhZCBvZiBwb3B1bGF0aW9uXCIsXCJ5U2NhbGVcIjp7XCJ1c2VfZGVmYXVsdFwiOnRydWUsXCJtYXhcIjoyNjAwMH0sXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpmYWxzZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJnb29kXCIsXCJpc19idXJuZG93bl9kaXNhYmxlZFwiOmZhbHNlLFwiaXNfdHJlbmRsaW5lX2Rpc2FibGVkXCI6dHJ1ZX0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTM6NTE6NDIuMzgwWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjE1OjA2LjE5M1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxMzo1MTo0Mi4zODBaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MjYyNiwiaWQiOiJ3N3plLXdzMzcifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTFUMTM6NTM6NTcuMjk5WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjE1OjA2LjMxNVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMVQxMzo1Mzo1Ny4yOTlaIiwiY3JlYXRlZF9ieSI6IjNkcHYtanI4bSJ9LHsiaWQiOiJxcmk0LTg5bnEiLCJuYW1lIjoiQXZlcmFnZSBHcm9zcyBXZWVrbHkgRWFybmluZ3MgZm9yIHJlc2lkZW50cyBpbiBXZXN0IFN1c3NleCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqQXZlcmFnZSBncm9zcyB3ZWVrbHkgZWFybmluZ3MgZm9yIGZ1bGwgdGltZSB3b3JrZXJzIHdobyBsaXZlIGluIFdlc3QgU3Vzc2V4KipcXG5cXG5UaGUgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgKEFTSEUpIHByb3ZpZGVzIGRhdGEgb24gZWFybmluZ3MgbGV2ZWxzIGRvd24gdG8gbG9jYWwgYXV0aG9yaXR5IGdlb2dyYXBoaWVzIGZvciBib3RoIHRob3NlIGxpdmluZyBpbiB0aGUgYXJlYSBhbmQgdGhvc2Ugd29ya2luZyBpbiB0aGUgYXJlYS4gVGhpcyBtZWFzdXJlIGlzIGEgcmVzaWRlbnQgYmFzZWQgbWVhc3VyZSDigJMgaS5lLiBpdCBpcyBtZWFzdXJpbmcgdGhlIGVhcm5pbmdzIGxldmVscyBmb3IgcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IHdoZXJldmVyIHRoZXkgbWlnaHQgYmUgd29ya2luZy4gVGhlIEFTSEUgZGF0YSBpcyBwdWJsaXNoZWQgYW5udWFsbHkgYnkgT05TLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipBdmVyYWdlIGdyb3NzIHdlZWtseSBlYXJuaW5ncyBmb3IgZnVsbCB0aW1lIHdvcmtlcnMgd2hvIGxpdmUgaW4gV2VzdCBTdXNzZXgqKlxcblxcblRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAoQVNIRSkgaXMgYSBVSyB3aWRlIHN1cnZleSB0aGF0IHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGhvdXJseSwgd2Vla2x5IGFuZCBhbm51YWwgZWFybmluZ3MgYnkgZ2VuZGVyIGFuZCB3b3JrIHBhdHRlcm5zLGFuZCBhdCBuYXRpb25hbCBhbmQgcmVnaW9uYWwgbGV2ZWwgZ2VvZ3JhcGhpZXMgb24gaW5kdXN0cnkgYW5kIG9jY3VwYXRpb24saW5jbHVkaW5nIHB1YmxpYyB2ZXJzdXMgcHJpdmF0ZSBzZWN0b3IgcGF5IGNvbXBhcmlzb25zLiBUaGUgYW5udWFsIHNlcmllcyBkYXRlcyBiYWNrIHRvIDE5OTcgYW5kIHRoZSBsYXRlc3QgZGF0YSBpcyBmb3IgMjAxNyB3aXRoIHRoZSAyMDE4IGRhdGEgZXhwZWN0ZWQgdG8gYmUgcmVsZWFzZWQgbGF0ZXIgaW4gTm92ZW1iZXIuIFRoZSBkYXRhIGlzIGdlbmVyYWxseSBhdmFpbGFibGUgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsLCB0aG91Z2ggaW4gc29tZSBjYXNlcywgYmVjYXVzZSBvZiBzYW1wbGluZyBpc3N1ZXMgdGhlIGRhdGEgaXMgc29tZXRpbWVzIHN1cHByZXNzZWQgZm9yIHBhcnRpY3VsYXIgdmFyaWFibGVzIGFuZCBpcyBub3QgYXZhaWxhYmxlIGF0IGRpc3RyaWN0IGxldmVsIGJ5IGluZHVzdHJpYWwgc2VjdG9yIG9yIG9jY3VwYXRpb25hbCB0eXBlcy4gVGhpcyBtZWFzdXJlIGlzIGEgcmVzaWRlbnQgYmFzZWQgbWVhc3VyZSDigJMgaS5lLiBpdCBpcyBtZWFzdXJpbmcgdGhlIGVhcm5pbmdzIGxldmVscyBmb3IgcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IHdoZXJldmVyIHRoZXkgbWlnaHQgYmUgd29ya2luZy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvREQ4QkIwNzYtRDgwNC00NDNCLTlERkQtQjREM0I4NTkwMzc5XCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQkEwREUyQTctODM3My00MUM4LTk0QjUtMTJFQTNBM0Y0NzIyXCJ9XSxbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiV2VzdCBTdXNzZXggZ3Jvc3Mgd2Vla2x5IGVhcm5pbmdzIGZvciBmdWxsIHRpbWUgd29ya2VycyBsZXZlbHMgZG8gbm90IG1lYXN1cmUgZmF2b3VyYWJseSBjb21wYXJlZCB3aXRoIHRoZSBuYXRpb25hbCBhbmQgcmVnaW9uYWwgbGV2ZWxzLCB0aGUgZWFybmluZ3MgbGV2ZWxzIGZvciBXZXN0IFN1c3NleCBhcmUgbG93ZXIgdGhhbiBib3RoIHRoZXNlIGFyZWFzLiBJbmRlZWQgb3ZlciB0aGUgeWVhciAyMDE2LTIwMTcgZWFybmluZ3MgbGV2ZWxzIGZlbGwgaW4gV2VzdCBTdXNzZXgsIGEgdHJlbmQgc2VlbiBpbiA1IG9mIHRoZSAxOSB1cHBlciB0aWVyIGF1dGhvcml0aWVzIGluIHRoZSBTb3V0aCBFYXN0LCBSZWFkaW5nIGhhZCBzZWVuIGFuIDcuOCUgaW5jcmVhc2UgaW4gZWFybmluZ3MsV2VzdCBTdXNzZXggYSBmYWxsIG9mIDAuNSUgYW5kIFdva2luZ2hhbSB0aGUgaGlnaGVzdCBkcm9wIG9mIDkuNSUuIFJlZ2lvbmFsbHkgZWFybmluZ3MgbGV2ZWxzIGluY3JlYXNlIGJ5IDIuNSUgb3ZlciB0aGUgeWVhciBhbmQgdGhlcmUgd2FzIGEgMiUgaW5jcmVhc2UgRW5nbGFuZCBhcyBhIHdob2xlLiBDb21wYXJlZCB3aXRoIHRoZSAxOSB1cHBlciB0aWVyIGF1dGhvcml0aWVzIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBXZXN0IFN1c3NleCBhdmVyYWdlIGdyb3NzIHdlZWtseSBlYXJuaW5ncyBsZXZlbHMgcmFua3MgYXMgdGhlIDV0aCBsb3dlc3QgbGV2ZWwuXFxuXFxuIFxcblxcbldlc3QgU3Vzc2V4IGxldmVsIG9mIGVhcm5pbmdzIGNvbXBhcmVzIG1vcmUgZmF2b3VyYWJseSB3aXRoIGl0cyBzdGF0aXN0aWNhbCBuZWlnaGJvdXJzLCBpdCByZW1haW5zIGluIHRoZSBoaWdoZXN0IHF1YXJ0aWxlLCB0aG91Z2ggaXMgwqM0OS42IHBlciB3ZWVrIGxvd2VyIHRoYW4gdGhlIGxldmVscyBzZWVuIGluIEhhbXBzaGlyZVxcblxcblwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGVyZSBpcyBzaWduaWZpY2FudCB2YXJpYXRpb24gaW4gcmVzaWRlbnQgZWFybmluZ3MgbGV2ZWxzIHdpdGhpbiBXZXN0IFN1c3NleCB3aXRoIEFkdXIgaGF2aW5nIHRoZSBsb3dlc3QgbGV2ZWxzIG9mIGVhcm5pbmdzIOKAkyBhdCBhcm91bmQgwqM0NzggcGVyIHdlZWsgY29tcGFyZWQgd2l0aCB0aGF0IGluIE1pZCBTdXNzZXggb2YgwqM2NTIuIEFydW4sIENoaWNoZXN0ZXIgYW5kIE1pZCBTdXNzZXggc2F3IHNvbWUgaW5jcmVhc2UgaW4gdGhlIHdlZWtseSBsZXZlbCBvZiBlYXJuaW5ncyBvdmVyIHRoZSBsYXN0IHllYXIgKDIwMTYtMjAxNykgdGhlIGhpZ2hlc3QgaW5jcmVhc2UgYmVpbmcgaW4gQXJ1biBvZiA3LjUlLCBhbmQgZmFsbHMgaW4gZWFybmluZ3Mgd2VyZSBzZWVuIGluIHRoZSByZW1haW5pbmcgbG9jYWwgYXV0aG9yaXR5IGFyZWFzIOKAkyB0aGUgbGFyZ2VzdCBkcm9wIGJlaW5nIHNlZW4gaW4gQ3Jhd2xleSB3aGVyZSBlYXJuaW5ncyBvZiByZXNpZGVudHMgZmVsbCBieSA2LjclLlxcblxcbkNvbXBhcmlzb24gYmV0d2VlbiB0aGUgZWFybmluZ3MgZm9yIHRob3NlIHdobyBsaXZlIGluIHRoZSBjb3VudHkgYW5kIHRob3NlIHdobyB3b3JrIGluIHRoZSBjb3VudHkgc2hvdyB0aGF0IHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBDcmF3bGV5IGFuZCBBZHVyIHJlc2lkZW50IGVhcm5pbmdzIGFyZSBoaWdoZXIuIFRoZSBiaWdnZXN0IGRpZmZlcmVuY2UgaXMgaW4gTWlkIFN1c3NleCB3aGVyZSBlYXJuaW5ncyBmb3IgdGhvc2UgbGl2aW5nIGluIE1pZCBTdXNzZXggYXJlLCBvbiBhdmVyYWdlLCDCozEwOCBoaWdoZXIgdGhhbiBmb3IgdGhvc2Ugd29ya2luZyBpbiB0aGUgZGlzdHJpY3QuIEluIEFkdXIgZWFybmluZ3MgZm9yIHRob3NlIHdvcmtpbmcgaW4gdGhlIGFyZWEgYXJlIMKjMTMuNSB0aGFuIHRoZSBlYXJuaW5ncyBmb3IgcmVzaWRlbnRzIGFuZCBpbiBDcmF3bGV5IGVhcm5pbmdzIGZvciB0aG9zZSB3b3JraW5nIGluIENyYXdsZXkgYXJlIMKjNjYgcGVyIHdlZWsgaGlnaGVyIHRoYW4gZWFybmluZ3Mgb2YgcmVzaWRlbnRzOyBpbmRlZWQgQ3Jhd2xleSBoYXMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2Ygd29ya3BsYWNlIGJhc2VkIGVhcm5pbmdzIGluIFdlc3QgU3Vzc2V44oCTaW5kaWNhdGluZyB0aGF0IGxvY2FsIHJlc2lkZW50cyBhcmUgbm90IGFjY2Vzc2luZyBsb2NhbCwgbW9yZSBoaWdobHkgcGFpZCwgYW5kIGhpZ2hseSBza2lsbGVkIGpvYnMsIHRob3VnaCB0aGUgd29ya3BsYWNlIGVhcm5pbmdzIGhhdmUgZGVjcmVhc2VkIG92ZXIgdGhlIHllYXIuXFxuXFxuIFwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy82Mjc2Qzc2RS0wNTAzLTRBQzctODMwRi0yNzNDODAwQjc2NzFcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNTQwMUU4MUMtRTgwNS00QjQzLThGOUMtQzQ1ODlEMTg0MUQyXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqQXZlcmFnZSBncm9zcyB3ZWVrbHkgZWFybmluZ3MgZm9yIGZ1bGwgdGltZSB3b3JrZXJzIHdobyBsaXZlIGluIFdlc3QgU3Vzc2V4KipcXG5cXG5UaGUgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgKEFTSEUpIHByb3ZpZGVzIGRhdGEgb24gZWFybmluZ3MgbGV2ZWxzIGRvd24gdG8gbG9jYWwgYXV0aG9yaXR5IGdlb2dyYXBoaWVzIGZvciBib3RoIHRob3NlIGxpdmluZyBpbiB0aGUgYXJlYSBhbmQgdGhvc2Ugd29ya2luZyBpbiB0aGUgYXJlYS4gVGhpcyBtZWFzdXJlIGlzIGEgcmVzaWRlbnQgYmFzZWQgbWVhc3VyZSDigJMgaS5lLiBpdCBpcyBtZWFzdXJpbmcgdGhlIGVhcm5pbmdzIGxldmVscyBmb3IgcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IHdoZXJldmVyIHRoZXkgbWlnaHQgYmUgd29ya2luZy4gVGhlIEFTSEUgZGF0YSBpcyBwdWJsaXNoZWQgYW5udWFsbHkgYnkgT05TLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIldlc3QgU3Vzc2V4IHJlc2lkZW50IGJhc2VkIHdlZWtseSBlYXJuaW5ncyBhcmUgbG93ZXIgdGhhbiB0aGUgcmVnaW9uYWwgbGV2ZWwsIGJ1dCBoaWdoZXIgdGhhbiBmb3IgRW5nbGFuZC5cXG5cXG5XZXN0IFN1c3NleCBkb2VzIG5vdCBjb21wYXJlIGZhdm91cmFibHkgY29tcGFyZWQgd2l0aCB0aGUgMTkgdXBwZXIgdGllci91bml0YXJ5IGF1dGhvcml0eSBhcmVhcyBpbiB0aGUgU291dGggRWFzdCByZWdpb24gYmVjYXVzZSBvZiBjb3Vyc2UgdGhlIGVhcm5pbmdzIGxldmVscyBhcmUgc29tZSBvZiB0aGUgaGlnaGVzdCwgb3V0c2lkZSBMb25kb24sIGluIHRoZSBjb3VudHkg4oCTIHBhcnRpY3VsYXJseSB0aG9zZSBvZiBTdXJyZXksIEJ1Y2tpbmdoYW1zaGlyZSwgV2VzdCBCZXJrc2hpcmUgcHJvYmFibHkgYmVjYXVzZSBvZiB0aGVpciBjbG9zZSBwcm94aW1pdHkgdG8gTG9uZG9uIGxlbmRpbmcgdGhlbXNlbHZlcyB0byBoaWdoIGxldmVscyBvZiBvdXQgY29tbXV0aW5nIHRvIExvbmRvbi4gVGhlIHBpY3R1cmUgaXMgZGlmZmVyZW50IHRob3VnaCB3aGVuIGNvbXBhcmluZyByZXNpZGVudCBlYXJuaW5ncyBsZXZlbHMgd2l0aCBTdGF0aXN0aWNhbCBOZWlnaGJvdXJzIOKAk2FzIHNob3duIHJpZ2h0LlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0QyNDgxRTk4LUZFODAtNEJFMi1CRDY0LTE2NjE4N0VBMUYxRVwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXZXN0IFN1c3NleCBsaWVzIGluIHRoZSB0b3AgcXVhcnRpbGUgd2hlbiBjb21wYXJlZCB3aXRoIFN0YXRpc3RpY2FsIE5laWdoYm91ciBhdXRob3JpdGllcyDigJMgaG93ZXZlciB0aGVyZSBpcyBhIHNpZ25pZmljYW50IGdhcCBiZXR3ZWVuIHRoZSBoaWdoZXN0IGxldmVsIGFzIHNlZW4gaW4gRXNzZXggYW5kIHRoYXQgZm9yIFdlc3QgU3Vzc2V4LCB0aGUgYW1iaXRpb24gaXMsIHRoZXJlZm9yZSB0byBtYXRjaCB0aGUgb3ZlcmFsbCBTb3V0aCBFYXN0IChyZWdpb25hbCkgZWFybmluZ3MgbGV2ZWxzLlxcblxcblRoZXJlIGlzIHNpZ25pZmljYW50IHZhcmlhdGlvbiBpbiByZXNpZGVudCBlYXJuaW5ncyBsZXZlbHMgd2l0aGluIFdlc3QgU3Vzc2V4IHdpdGggQWR1ciBhbmQgQXJ1biBoYXZpbmcgdGhlIGxvd2VzdCBsZXZlbHMgb2YgZWFybmluZ3Mg4oCTIGF0IGFyb3VuZCDCozQ3NyBwZXIgd2VlayBjb21wYXJlZCB3aXRoIHRoYXQgaW4gSG9yc2hhbSBhbmQgTWlkIFN1c3NleCBvZiDCozYyMi5cXG5cXG5Db21wYXJpc29uIGJldHdlZW4gdGhlIGVhcm5pbmdzIGZvciB0aG9zZSB3aG8gbGl2ZSBpbiB0aGUgY291bnR5IGFuZCB0aG9zZSB3aG8gd29yayBpbiB0aGUgY291bnR5IHNob3cgdGhhdCB3aXRoIHRoZSBleGNlcHRpb24gb2YgQ3Jhd2xleSByZXNpZGVudCBlYXJuaW5ncyBhcmUgaGlnaGVyLiBJbiBDcmF3bGV5IGhvd2V2ZXIsIGVhcm5pbmdzIGZvciB0aG9zZSB3b3JraW5nIGluIENyYXdsZXkgYXJlIGNvbnNpZGVyYWJseSBoaWdoZXIgdGhhbiBlYXJuaW5ncyBvZiByZXNpZGVudHMsIGFuZCBpbmRlZWQgQ3Jhd2xleSBoYXMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2Ygd29ya3BsYWNlIGJhc2VkIGVhcm5pbmdzIGluIFdlc3QgU3Vzc2V4IOKAk2luZGljYXRpbmcgdGhhdCBsb2NhbCByZXNpZGVudHMgYXJlIG5vdCBhY2Nlc3NpbmcgbG9jYWwsIG1vcmUgaGlnaGx5IHBhaWQsIGFuZCBoaWdobHkgc2tpbGxlZCBqb2JzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9GODRDQ0I3MC1GRTc1LTRBMkItODRENC1FOURENzIyMjdFNEZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgbGF0ZXN0IGRhdGEgZm9yIEdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIHdhcyByZWxlYXNlZCBpbiBEZWNlbWJlciAyMDE2IGFuZCBjb3ZlcnMgdGhlIHBlcmlvZCB1cCB0byAyMDE1LiBUaGUgbmV4dCByZWxlYXNlIG9mIHRoaXMgZGF0YSBmcm9tIE9OUyBpcyBleHBlY3RlZCBpbiBpcyBhIHJlY29nbmlzZWQgbWVhc3VyZSBvZiBlY29ub21pYyBhY3Rpdml0eSBicm9hZGx5IGRlZmluZWQgYXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdmFsdWUgb2YgdGhlIGdvb2RzIGFuZCBzZXJ2aWNlcyBwcm9kdWNlZCBhbmQgdGhlIGNvc3Qgb2YgcmF3IG1hdGVyaWFscyBhbmQgb3RoZXIgaW5wdXRzIHVzZWQgaW4gcHJvZHVjdGlvbi4gVGhlIGRhdGEgaXMgcmVsZWFzZWQgYW5udWFsbHkgZnJvbSBPTlMsIGFuZCBpbmNsdWRlcyB0aGUgc3ViLXJlZ2lvbmFsIGVzdGltYXRlcyBmb3IgR1ZBIGZvciB0aGUgdHdvIFdlc3QgU3Vzc2V4IFN1YiBBcmVhczpcXG5cXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIxLiAqKldlc3QgU3Vzc2V44oCTU291dGggV2VzdCAoV1NTVykg4oCTIGNvbXByaXNlcyBDaGljaGVzdGVyLCBBcnVuLCBBZHVyIGFuZCBXb3J0aGluZyoqXFxuXFxuMS4gKipXZXN0IFN1c3NleOKAk05vcnRoIEVhc3QgKFdTTkUpIOKAkyBjb21wcmlzZXMgQ3Jhd2xleSwgSG9yc2hhbSBhbmQgTWlkIFN1c3NleCoqXFxuXFxuVGhlIGxhdGVzdCBkYXRhLCBhbHJlYWR5IHJlcG9ydGVkLCB3YXMgcmVsZWFzZWQgaW4gRGVjZW1iZXIgMjAxNiwgYW5kIGNvdmVycyB0aGUgcGVyaW9kIHVwIHRvIDIwMTUsIHRoZSBmaWd1cmVzIGFuZCB0cmVuZHMgZm9yIHRoZSB0d28gV2VzdCBTdXNzZXggYXJlYXMgd2VyZSByZXBvcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBxdWFydGVyIGFuZCB0aGVyZSBpcyBubyB1cGRhdGUgaW4gdGVybXMgb2YgdGhlIGxvY2FsIHBpY3R1cmUuIFRoZSBuZXh0IHJlbGVhc2Ugb2YgZGF0YSBpcyBleHBlY3RlZCBpbiBEZWNlbWJlciAyMDE3Llxcblxcbkhvd2V2ZXIsIGluIE1hcmNoIDIwMTcgdGFibGVzIHNob3dpbmcgR1ZBIGFsbG9jYXRlZCB0byBsb2NhbCBhdXRob3JpdGllcyBpbiB0aGUgVUsgd2VyZSByZWxlYXNlZCwgdGhlIGRhdGEgd2FzIHByb2R1Y2VkIGluIHJlc3BvbnNlIHRvIHVzZXIgbmVlZCBidXQgd2hpbGUgbm90IE5hdGlvbmFsIFN0YXRpc3RpY3MsIG5ldmVydGhlbGVzcyBnaXZlIHNvbWUgaW5kaWNhdGlvbiBhcyB0byB0aGUgc2NhbGUgb2YgR1ZBIGF0IGxvY2FsIGF1dGhvcml0eSBsZXZlbCwgYW5kIHRoZSBjb250cmlidXRpb24gdGhhdCBlYWNoIG9mIHRoZSBicm9hZCBsZXZlbCBzZWN0b3JzIG1ha2UgdG8gdGhlIGxvY2FsIGVjb25vbXkuIFtodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZ3Jvc3N2YWx1ZWFkZGVkZ3ZhL2RhdGFzZXRzL3JlZ2lvbmFsZ3ZhaWJ5bG9jYWxhdXRob3JpdHlpbnRoZXVrXVswXVxcblxcblswXTogaHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2dyb3NzdmFsdWVhZGRlZGd2YS9kYXRhc2V0cy9yZWdpb25hbGd2YWlieWxvY2FsYXV0aG9yaXR5aW50aGV1a1wifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9GMUMzQzI0Qi1EN0E2LTQzNjEtOUVGQy1DNTcxRDQ2RTlDRThcIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yN0ZDQjExOS0xODY2LTRGNUEtODEwRS01QjdGRkEwMEZBQkZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIG1haW4gcG9pbnRzIGZyb20gdGhlIChPTlMpIHN1bW1hcnkgb2YgdGhlIChHQikgU2hvcnQtdGVybSBlY29ub21pYyBpbmRpY2F0b3JzIHB1Ymxpc2hlZCBpbiBlYXJseSBTZXB0ZW1iZXIgMjAxNyBhcmU6XFxuXFxuKiBUb3RhbCBwcm9kdWN0aW9uIG91dHB1dCBzYXcgYSBzbGlnaHQgaW5jcmVhc2UgaW4gdGhlIDMgbW9udGhzIHRvIEp1bHkgMjAxNyBhbmQgaW5jcmVhc2VkIGJ5IDAuMyU7XFxuXFxuKiBNYW51ZmFjdHVyaW5nIHJlbWFpbnMgcmVsYXRpdmVseSBzdWJkdWVkIHNpbmNlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHllYXIsIHRob3VnaCBzb21lIGdyb3d0aCBzZWVuIGZyb20gSnVseSBhdHRyaWJ1dGVkIHRvIHN0cm9uZ2VyIGdyb3d0aCBpbiBjYXIgcHJvZHVjdGlvbjtcXG5cXG4qIENvbnN0cnVjdGlvbiBvdXRwdXQgZmVsbCBmb3IgdGhlIGZvdXJ0aCBtb250aCBpbiBhIHJvdywgd2l0aCBwcml2YXRlIGhvdXNpbmcgYnVpbGRpbmcgY29udHJhY3RpbmcgaW4gSnVseSAyMDE3IGFmdGVyIHNlZWluZyBncm93dGggYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgeWVhci5cXG5cXG5baHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2Vjb25vbWljb3V0cHV0YW5kcHJvZHVjdGl2aXR5L291dHB1dC9hcnRpY2xlcy9zaG9ydHRlcm1pbmRpY2F0b3JzZWNvbm9taWNjb21tZW50YXJ5L3NlcHQyMDE3XVswXVxcblxcblswXTogaHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2Vjb25vbWljb3V0cHV0YW5kcHJvZHVjdGl2aXR5L291dHB1dC9hcnRpY2xlcy9zaG9ydHRlcm1pbmRpY2F0b3JzZWNvbm9taWNjb21tZW50YXJ5L3NlcHQyMDE3XCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgKEFTSEUpIGlzIGEgVUstd2lkZSBzdXJ2ZXkgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBob3VybHksIHdlZWtseSBhbmQgYW5udWFsIGVhcm5pbmdzIGJ5IGdlbmRlciBhbmQgd29yayBwYXR0ZXJucyxhbmQgYXQgbmF0aW9uYWwgYW5kIHJlZ2lvbmFsIGxldmVsIGdlb2dyYXBoaWVzIG9uIGluZHVzdHJ5IGFuZCBvY2N1cGF0aW9uLCBpbmNsdWRpbmcgcHVibGljIHZlcnN1cyBwcml2YXRlIHNlY3RvciBwYXkgY29tcGFyaXNvbnMuIFRoZSBhbm51YWwgc2VyaWVzIGRhdGVzIGJhY2sgdG8gMjAwMiwgdGhvdWdoIHRoZXJlIGhhdmUgYmVlbiBzb21lIG1ldGhvZG9sb2dpY2FsIGNoYW5nZXMgb3ZlciB0aGlzIHRpbWUuIFRoZSBkYXRhIGlzIGdlbmVyYWxseSBhdmFpbGFibGUgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsLCB0aG91Z2ggaW4gc29tZSBjYXNlcyBkdWUgdG8gc2FtcGxpbmcgaXNzdWVzIHRoZSBkYXRhIGNhbiBiZSBzdXBwcmVzc2VkIGZvciBwYXJ0aWN1bGFyIHZhcmlhYmxlcy5cXG5cXG5UaGUgbGF0ZXN0IGZpZ3VyZXMgYXJlIGZvciAyMDE2IChyZWxlYXNlZCBPY3RvYmVyIDIwMTYpIGFuZCB3ZXJlIHJlcG9ydGVkIGZvciBXZXN0IFN1c3NleCBhbmQgaXRzIGxvY2FsIGF1dGhvcml0aWVzIGFsb25nIHdpdGggY29tcGFyaXNvbnMgYXQgcmVnaW9uYWwgbGFuZCBuYXRpb25hbCBsZXZlbCwgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgcXVhcnRlciwgYW5kIHRoZXJlIGlzIG5vIGZ1cnRoZXIgdXBkYXRlIGF0IHRoaXMgZ2VvZ3JhcGh5LiBUaGUgbmV4dCByZWxlYXNlIG9mIGRhdGEgaXMgZXhwZWN0ZWQgaW4gTm92ZW1iZXIgMjAxNy5cXG5cXG5Ib3dldmVyLCBzaW5jZSB0aGUgcmVwb3J0aW5nIG9mIHRoZSBsYXN0IEFubnVhbCBTdXJ2ZXkgb2YgSG91cnMgYW5kIEVhcm5pbmdzIGRhdGEsIE9OUywgaW4gRGVjZW1iZXIgMjAxNiwgcmVsZWFzZWQgc21hbGwgYXJlYSBtb2RlbCBiYXNlZCBpbmNvbWUgZXN0aW1hdGVzLCBmb3IgdGhlIGZpbmFuY2lhbCB5ZWFyIGVuZGluZyAyMDE0LiBUaGV5IGFyZSBvZmZpY2lhbCBlc3RpbWF0ZXMgb2Ygd2Vla2x5IGhvdXNlaG9sZCBpbmNvbWUgYXQgbWlkZGxlIGxheWVyIHN1cGVyIG91dHB1dCBhcmVhcyAoTVNPQSkgY2FsY3VsYXRlZCB1c2luZyBhIG1vZGVsIGJhc2VkIG1ldGhvZCwgdXNpbmcgYSBjb21iaW5hdGlvbiBvZiBzdXJ2ZXkgZGF0YSwgcHJldmlvdXNseSBwdWJsaXNoZWQgZGF0YSBmcm9tIHRoZSAyMDExIENlbnN1cyBhbmQgYSBudW1iZXIgb2YgYWRtaW5pc3RyYXRpdmUgZGF0YSBzb3VyY2VzLlxcblxcbkEgbWlkZGxlIHN1cGVyIG91dHB1dCBhcmVhIGlzIGEgbG93IGxldmVsIGdlb2dyYXBoeSwgd2l0aCBhIG1pbmltdW0gc2l6ZSBvZiA1LDAwMCByZXNpZGVudHMgYW5kIDIsMDAwIGhvdXNlaG9sZHMuIFRoZXJlIGlzIGFuIGF2ZXJhZ2UgcG9wdWxhdGlvbiBvZiA3LDUwMCB3aGljaCBmaXQgaW50byBsb2NhbCBhdXRob3JpdHkgYm91bmRhcmllcy4gVGhlcmUgYXJlIDEwMCBtaWRkbGUgc3VwZXIgb3V0cHV0IGFyZWFzIGluIFdlc3QgU3Vzc2V4LlxcblxcblRoZSBlc3RpbWF0ZXMgc2hvdyB0aGF0IE1TT0EgQ3Jhd2xleSAwMDggKGluY2x1ZGVzIGFyZWFzIFBvdW5kIEhpbGwsIFdvcnRoIGFuZCBNYWlkZW5ib3dlciDigJMgbmVhcmJ5IHRvIENocmlzdHMgSG9zcGl0YWwgKGp1c3Qgb3ZlciBhbiBob3VyIHRvIExvbmRvbiBWaWN0b3JpYSkgaGFzIHRoZSBoaWdoZXN0IGF2ZXJhZ2Ugc2FsYXJ5IGluIFdlc3QgU3Vzc2V4IGF0IMKjNjIsOTIw4oCTSG9yc2hhbSAwMDkgaW5jbHVkZXMgU291dGh3YXRlciBoYXMgdGhlIDJuZCBoaWdoZXN0IGF2ZXJhZ2Ugc2FsYXJ5IGluIFdlc3QgU3Vzc2V4IGF0IMKjNjAsMzIwIGFuZCBIb3JzaGFtIDAwOCAocnVyYWwgYXJlYSBpbmNsdWRpbmcgTWFubmluZ3MgSGVhdGgsIE51dGh1cnN0IGFuZCBDb3BzYWxlKSBoYXMgdGhlIDNyZCBoaWdoZXN0IGF2ZXJhZ2UgaW5jb21lIGluIFdlc3QgU3Vzc2V4IGF0IMKjNTksODAwLlxcblxcblRoZSB0aHJlZSBsb3dlc3QgaW5jb21lIGxldmVscyBhcmUgc2VlbiBpbiB0aGUgTVNPQXM6XFxuXFxu4oCiIEFydW4gMDE3IMKjMzMsODAwIC0gKEJvZ25vciBzZWFmcm9udClcXG5cXG7igKIgQXJ1biAwMTkgLyAwMTEgwqMzMiw3NjAgLSAoUGFnaGFtIC8gTGl0dGxlaGFtcHRvblxcblxcbuKAoiBDaGljaGVzdGVyIDAxNCDCozMyLDI0MCDigJMoU2Vsc2V5KVxcblxcbsKgICBbaHR0cHM6Ly93d3cub25zLmdvdi51ay9wZW9wbGVwb3B1bGF0aW9uYW5kY29tbXVuaXR5L3BlcnNvbmFsYW5kaG91c2Vob2xkZmluYW5jZXMvaW5jb21lYW5kd2VhbHRoL2FydGljbGVzL3NtYWxsYXJlYW1vZGVsYmFzZWRpbmNvbWVlc3RpbWF0ZXNlbmdsYW5kYW5kd2FsZXMvZmluYW5jaWFseWVhcmVuZGluZzIwMTRdWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL3Blb3BsZXBvcHVsYXRpb25hbmRjb21tdW5pdHkvcGVyc29uYWxhbmRob3VzZWhvbGRmaW5hbmNlcy9pbmNvbWVhbmR3ZWFsdGgvYXJ0aWNsZXMvc21hbGxhcmVhbW9kZWxiYXNlZGluY29tZWVzdGltYXRlc2VuZ2xhbmRhbmR3YWxlcy9maW5hbmNpYWx5ZWFyZW5kaW5nMjAxNFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyDigJMgRGVjZW1iZXIgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5UaGUgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgKEFTSEUpIGlzIGEgVUstd2lkZSBzdXJ2ZXkgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBob3VybHksIHdlZWtseSBhbmQgYW5udWFsIGVhcm5pbmdzIGJ5IGdlbmRlciBhbmQgd29yayBwYXR0ZXJucywgYW5kIGF0IG5hdGlvbmFsIGFuZCByZWdpb25hbCBsZXZlbCBnZW9ncmFwaGllcyBvbiBpbmR1c3RyeSBhbmQgb2NjdXBhdGlvbiwgaW5jbHVkaW5nIHB1YmxpYyB2ZXJzdXMgcHJpdmF0ZSBzZWN0b3IgcGF5IGNvbXBhcmlzb25zLiBUaGUgYW5udWFsIHNlcmllcyBkYXRlcyBiYWNrIHRvIDIwMDIsIHRob3VnaCB0aGVyZSBoYXZlIGJlZW4gc29tZSBtZXRob2RvbG9naWNhbCBjaGFuZ2VzIG92ZXIgdGhpcyB0aW1lLiBUaGUgbGF0ZXN0IGZpZ3VyZXMgYXJlIGZvciAyMDE2IChyZWxlYXNlZCBPY3RvYmVyIDIwMTYpLiBUaGUgZGF0YSBpcyBnZW5lcmFsbHkgYXZhaWxhYmxlIGF0IGxvY2FsIGF1dGhvcml0eSBsZXZlbCwgdGhvdWdoIGluIHNvbWUgY2FzZXMgZHVlIHRvIHNhbXBsaW5nIGlzc3VlcyB0aGUgZGF0YSBjYW4gYmUgc3VwcHJlc3NlZCBmb3IgcGFydGljdWxhciB2YXJpYWJsZXMuIEVhcm5pbmdzIGRhdGEgaXMgbm90IGF2YWlsYWJsZSBhdCBhbGwgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsIGJ5IGluZHVzdHJpYWwgc2VjdG9yIG9yIG9jY3VwYXRpb25hbCB0eXBlcy5UaGUgbGF0ZXN0IHNldCBvZiBmaWd1cmVzIHN1Z2dlc3QgdGhhdCB0aGUgYW5udWFsIGF2ZXJhZ2Ugd2Vla2x5IGVhcm5pbmdzIGZvciBmdWxsIHRpbWUgd29ya2VycyBsaXZpbmcgaW4gV2VzdCBTdXNzZXggaXMgwqM1NTcuMiwgaGlnaGVyIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2UsIGJ1dCBsb3dlciB0aGFuIHRoZSByZWdpb25hbCBhdmVyYWdlLiBUaGUgaGlnaGVzdCBlYXJuZXJzIGxpdmUgaW4gSG9yc2hhbSBhbmQgaGF2ZSBhdmVyYWdlIHdlZWtseSBmdWxsIHRpbWUgZWFybmluZ3Mgb2YgwqM2MjI7IHRoZSBsb3dlc3QgZWFybmVycyBsaXZlIGluIEFydW4gd2l0aCBjb25zaWRlcmFibHkgbG93ZXIgYXZlcmFnZSBsZXZlbHMgb2YgcGF5IGF0IMKjNDc2LjEuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiT3ZlciB0aGUgbGFzdCBmaXZlIHllYXJzIHBheSBsZXZlbHMgZm9yIFdlc3QgU3Vzc2V4IG92ZXJhbGwgaGF2ZSBpbmNyZWFzZWQgYnkgOS4zJSBjb21wYXJlZCB3aXRoIHRoZSBpbmNyZWFzZSBpbiBFbmdsYW5kIGF0IDcuOSUgYW5kIGZvciB0aGUgU291dGggRWFzdCByZWdpb24gYXQgNC45JS4gSG93ZXZlciB0aGUgdmFyaWF0aW9uIHdpdGhpbiB0aGUgY291bnR5IGlzIHNpZ25pZmljYW50IOKAkyBBZHVyIGhhcyBzZWVuIHRoZSBoaWdoZXN0IGluY3JlYXNlIGF0IG92ZXIgMTYlIGFuZCBNaWQgU3Vzc2V4IHRoZSBsb3dlc3QgaW5jcmVhc2UgYXQgNC42JS4gV2hpbHN0IG92ZXIgdGhlIGxhc3QgeWVhciAoMjAxNS0yMDE2KSBXZXN0IFN1c3NleCBzYXcgYSBncm93dGggaW4gd2Vla2x5IGVhcm5pbmdzIG9mIDElIChjb21wYXJlZCB3aXRoIEVuZ2xhbmQgb2YgMi40JSBhbmQgdGhlIFNvdXRoIEVhc3Qgb2YgMS4yJSkgQWR1ciwgQXJ1biwgSG9yc2hhbSBhbmQgV29ydGhpbmcgaGF2ZSBzZWVuIGEgZmFsbCBpbiByZXNpZGVudCBlYXJuaW5ncyBsZXZlbHMuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMkFBQURCQjAtRDg5MS00RkE0LUFEQTMtMzY5NzJBQTVCMjM3XCJ9XV19LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRjk4NURBMzgtOTBFOC00MTVBLTk5QTctRkE1N0Q5NjY4MDMxXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMzY4NzgwQkEtNzA0Mi00OTlELTlFQjItMzYzRjg4NDBGQjMxXCJ9XV19LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQ2hhbmdlIGluIHdlZWtseSBlYXJuaW5ncyBmb3IgZnVsbCB0aW1lIHdvcmtlcnM6IEdyb3d0aCBpbiB0aGUgZWFybmluZ3Mgb2YgcGVvcGxlIHdvcmtpbmcgaW4gYW4gYXJlYSAod29ya2VycykgaGFzbuKAmXQgYmVlbiBzbyBoaWdoIGFzIGZvciB0aG9zZSBwZW9wbGUgbGl2aW5nIGluIHRob3NlIGFyZWFzIChyZXNpZGVudHMpLiBJbiBXZXN0IFN1c3NleCBwZW9wbGUgd29ya2luZyBpbiB0aGUgY291bnR5IG92ZXJhbGwgaGF2ZSBlbmpveWVkIGFuIGluY3JlYXNlIG9mIDQlIGluIGVhcm5pbmdzIGxldmVscyBvdmVyIHRoZSBsYXN0IDUgeWVhcnMsIGNvbXBhcmVkIHdpdGggYW4gaW5jcmVhc2UgaW4gb3ZlciA5JSBvZiB0aG9zZSB3b3JrZXJzIGxpdmluZyBpbiB0aGUgY291bnR5LiBPdmVyIHRoZSBsYXN0IHllYXIsIDIwMTUtMTYgV2VzdCBTdXNzZXgsIEFydW4sIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXggZWFybmluZ3MgbGV2ZWxzIG9mIHdvcmtlcnMgaW4gdGhlc2UgYXJlYXMgaGF2ZSBmYWxsZW4g4oCTIG1vc3QgbWFya2VkIGluIFdvcnRoaW5nLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0RCMkU5MzdDLTlENUEtNDE1NS05OUM5LUI5QkQ0MDE2MURBOVwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgc291cmNlIG9mIHRoZSBjb21wbGV0ZSBkYXRhIHNldCDigJMgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgMjAxNiBpcyBhY2Nlc3NlZDogW2h0dHBzOi8vd3d3Lm9ucy5nb3YudWsvZW1wbG95bWVudGFuZGxhYm91cm1hcmtldC9wZW9wbGVpbndvcmsvZWFybmluZ3NhbmR3b3JraW5naG91cnMvYnVsbGV0aW5zL2FubnVhbHN1cnZleW9maG91cnNhbmRlYXJuaW5ncy9wcmV2aW91c1JlbGVhc2VzXVswXVxcblxcblswXTogaHR0cHM6Ly93d3cub25zLmdvdi51ay9lbXBsb3ltZW50YW5kbGFib3VybWFya2V0L3Blb3BsZWlud29yay9lYXJuaW5nc2FuZHdvcmtpbmdob3Vycy9idWxsZXRpbnMvYW5udWFsc3VydmV5b2Zob3Vyc2FuZGVhcm5pbmdzL3ByZXZpb3VzUmVsZWFzZXNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSAoVXBkYXRlZCBPY3RvYmVyIDIwMTYpKipcXG5cXG4tIC0gLVxcblxcblRoZXNlIGZpZ3VyZXMgYXJlIHJlbGVhc2VkIGFubnVhbGx5IGZyb20gdGhlIEFubnVhbCBTdXJ2ZXkgb2YgSG91cnMgYW5kIEVhcm5pbmdzLiBUaGUgMjAxNiBwcm92aXNpb25hbCBlc3RpbWF0ZXMgZm9yIGF2ZXJhZ2UgZWFybmluZ3MgcmVsZWFzZWQgb24gdGhlIDI2dGggT2N0b2JlciBzaG93IHRoYXQgdGhlIGZpZ3VyZSBmb3IgV2VzdCBTdXNzZXggaXMgwqM1NTcuMjAsIGFuIGluY3JlYXNlIG9mIDEuMSUgb24gdGhlIDIwMTUgZmluYWwgZmlndXJlLlxcblxcbkZvciBBdmVyYWdlIGVhcm5pbmdzIGluIEVuZ2xhbmQsIG1lZGlhbiBncm9zcyB3ZWVrbHkgcGF5IG9mIGVtcGxveWVlcyBieSByZXNpZGVuY2UgKHJlc2lkZW50IGJhc2UpLCB0aGUgMjAxNiBmaWd1cmUgZm9yIEVuZ2xhbmQgd2FzIMKjNTQ0LjcwLCBhIHJpc2Ugb2YgMi40JS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5UaGVzZSBmaWd1cmVzIGFyZSByZWxlYXNlZCBhbm51YWxseSBmcm9tIHRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncy4gVGhlIDIwMTYgcHJvdmlzaW9uYWwgZXN0aW1hdGVzIGZvciBhdmVyYWdlIGVhcm5pbmdzIGFyZSBleHBlY3RlZCB0byBiZSByZWxlYXNlZCBvbiB0aGUgMjZ0aCBPY3RvYmVyLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5XaGF0IHdpbGwgaGFwcGVuIHRvIHRoZXNlIG1lYXN1cmVzLCBpbiByZXNwZWN0IG9mIHRoZSBuYXRpb25hbC9yZWdpb25hbC9sb2NhbCBlY29ub215LCBnaXZlbiB0aGUgRVUgcmVmZXJlbmR1bSByZXN1bHQsIGlzIHN0aWxsIHRvIGJlIGRldGVybWluZWQuIFRoaXMgaXMgaW5jcmVhc2luZyB5ZWFyLW9uLXllYXIuIFRoaXMgZmlndXJlIGlzIGFsc28gYWJvdmUgdGhlIEVuZ2xhbmQgdG90YWwgYnV0IGlzIGJlbG93IFNvdXRoLUVhc3QsIGFsdGhvdWdoIHRoZSBnYXAgaXMgZ3JhZHVhbGx5IGNsb3NpbmcuIFRoZSBuZXh0IHVwZGF0ZSB3aWxsIGJlIGluIE5vdmVtYmVyL0RlY2VtYmVyIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5UaGUgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgKEFTSEUpIGlzIGEgVUsgd2lkZSBzdXJ2ZXkgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBob3VybHksIHdlZWtseSBhbmQgYW5udWFsIGVhcm5pbmdzIGJ5IGdlbmRlciBhbmQgd29yayBwYXR0ZXJucywgYW5kIGF0IG5hdGlvbmFsIGFuZCByZWdpb25hbCBsZXZlbCBnZW9ncmFwaGllcyBvbiBpbmR1c3RyeSBhbmQgb2NjdXBhdGlvbiwgaW5jbHVkaW5nIHB1YmxpYyB2ZXJzdXMgcHJpdmF0ZSBzZWN0b3IgcGF5IGNvbXBhcmlzb25zLiBUaGUgYW5udWFsIHNlcmllcyBkYXRlcyBiYWNrIHRvIDE5OTcgYW5kIHRoZSBsYXRlc3QgZmlndXJlcyBhcmUgZm9yIDIwMTUgKHJlbGVhc2VkIE5vdmVtYmVyIDIwMTUpLiBUaGUgMjAxNiBkYXRhIGlzIGV4cGVjdGVkIHRvIGJlIHB1Ymxpc2hlZCBpbiBOb3ZlbWJlciAyMDE2LiBUaGUgZGF0YSBpcyBnZW5lcmFsbHkgYXZhaWxhYmxlIGF0IGxvY2FsIGF1dGhvcml0eSBsZXZlbCwgdGhvdWdoIGluIHNvbWUgY2FzZXMsIGJlY2F1c2Ugb2Ygc2FtcGxpbmcgaXNzdWVzIHRoZSBkYXRhIGlzIHNvbWV0aW1lcyBzdXBwcmVzc2VkIGZvciBwYXJ0aWN1bGFyIHZhcmlhYmxlcyBhbmQgaXMgbm90IGF2YWlsYWJsZSBhdCBkaXN0cmljdCBsZXZlbCBieSBpbmR1c3RyaWFsIHNlY3RvciBvciBvY2N1cGF0aW9uYWwgdHlwZXMuXFxuXFxuVGhlIGxhdGVzdCBzZXQgb2YgZmlndXJlcyBzdWdnZXN0IHRoYXQgdGhlIGFubnVhbCBhdmVyYWdlIHdlZWtseSBlYXJuaW5ncyBmb3IgZnVsbCB0aW1lIHdvcmtlcnMgbGl2aW5nIGluIFdlc3QgU3Vzc2V4IGlzIMKjNTUyLjcsIGhpZ2hlciB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlLCBidXQgbG93ZXIgdGhhbiB0aGUgcmVnaW9uYWwgYXZlcmFnZS4gVGhlIGhpZ2hlc3QgZWFybmVycyBsaXZlIGluIEhvcnNoYW0gYW5kIGhhdmUgYXZlcmFnZSB3ZWVrbHkgZnVsbCB0aW1lIGVhcm5pbmdzIG9mIMKjNjI3LjksIHRoZSBsb3dlc3QgZWFybmVycyBsaXZlIGluIEFydW4gd2l0aCBjb25zaWRlcmFibHkgbG93ZXIgYXZlcmFnZSBsZXZlbHMgb2YgcGF5IGF0IMKjNDg2LjIuIFBheSBsZXZlbHMgaGF2ZSBpbmNyZWFzZWQgc3RlYWRpbHkgb3ZlciB0aW1lLCBvdmVyIHRoZSB5ZWFyIDIwMTQtMTUgV2VzdCBTdXNzZXggaGFzIHNlZW4gYSAyLjQlIGdyb3d0aCBpbiBhdmVyYWdlIHdlZWtseSBlYXJuaW5ncywgaGlnaGVyIHRoYW4gbmF0aW9uYWxseSBvciByZWdpb25hbGx5LCBBZHVyLCBBcnVuIGFuZCBDaGljaGVzdGVyIGhhdmUgc2VlbiBoaWdoZXIgaW5jcmVhc2UgaW4gZWFybmluZ3MgdGhhbiB0aGUgY291bnR5IGF2ZXJhZ2UuIE92ZXIgdGhlIGxvbmdlciB0ZXJtLCBzaW5jZSAyMDEwLCBXZXN0IFN1c3NleCBoYXMgc2VlbiBhbiBpbmNyZWFzZSBvZiDCozQ3LjggcGVyIHdlZWssIG9yIDkuNSUgZ3Jvd3RoIGluIGVhcm5pbmdzIGhpZ2hlciB0aGFuIHJlZ2lvbmFsbHkgKDQuOSUpIG9yIG5hdGlvbmFsbHkgKDUuMyUpLCB3aXRoIEFkdXIgc2VlaW5nIHRoZSBoaWdoZXN0IHBlcmNlbnRhZ2UgZ3Jvd3RoIGF0IDIyLjYlIGFuZCBDcmF3bGV5IHRoZSBsb3dlc3QgZ3Jvd3RoIGF0IDQuMSUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzlCMEU1RjYzLTkwQ0EtNDBFOC05OUI4LUM4NUNBMjAxRDU1MVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJTb3VyY2U6IEFubnVhbCBTdXJ2ZXkgb2YgSG91cnMgYW5kIEVhcm5pbmdzLCAyMDE1IChPTlMvbm9taXMpXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkluIDIwMTUgdGhlIGF2ZXJhZ2UgYW5udWFsIGdyb3NzIHBheSBmb3IgcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IHdhcyDCozMwLDg1Mywgc2xpZ2h0ZXIgaGlnaGVyIHRoYW4gdGhlIGF2ZXJhZ2UgZm9yIEVuZ2xhbmQgKMKjMzAsMTY1KSBidXQgbW9yZSB0aGFuIDEwJSBsb3dlciB0aGFuIHRoZSByZWdpb25hbCBhdmVyYWdlICjCozMzLDM4MikuIE92ZXIgdGhlIGxhc3QgZml2ZSB5ZWFycywgMjAxMC0yMDE1IHJlc2lkZW50IGJhc2VkIGVhcm5pbmdzIGluIFdlc3QgU3Vzc2V4IGluY3JlYXNlZCBieSA5LjIlLG1vcmUgdGhhbiBkb3VibGUgdGhhdCBzZWVuIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiAoNC4zJSkgLiBBdmVyYWdlIGFubnVhbCB3b3JrcGxhY2UgYmFzZWQgZWFybmluZ3MgaW4gV2VzdCBTdXNzZXggYXJlIGxvd2VyIHRoYW4gZm9yIHJlc2lkZW50IGJhc2VkIGVhcm5pbmdzIGF0IMKjMjYsODMxIGxvd2VyIHRoYW4gdGhlIG5hdGlvbmFsIGFuZCByZWdpb25hbCBlYXJuaW5ncyBsZXZlbHMgcG9zc2libHkgYW4gaW5kaWNhdGlvbiBvZiB0aGUgZXh0ZW50IG9mIGxvd2VyIHBhaWQgam9icyBpbiBXZXN0IFN1c3NleC4gV29ya3BsYWNlIGJhc2VkIGVhcm5pbmdzIGhhdmUgaW5jcmVhc2VkIG92ZXIgdGhlIGxhc3QgNSB5ZWFycyDigJMgMjAxMCDigJMgMjAxNSBieSA0LjYlLlxcblxcblRoZXJlIGlzIHNpZ25pZmljYW50IHZhcmlhdGlvbiB0aHJvdWdob3V0IHRoZSBDb3VudHkgaW4gZWFybmluZyBsZXZlbHMuIEluIDIwMTUgSG9yc2hhbSByZXNpZGVudHMgaGF2ZSB0aGUgaGlnaGVzdCBhdmVyYWdlIHdlZWtseSBlYXJuaW5ncyBsZXZlbHMgb2YgwqM2MjcuOSBhbmQgQXJ1biB0aGUgbG93ZXN0IGF0IMKjNDg2LjIuIENlcnRhaW5seSBlYXJuaW5ncyBhcmUgbG93ZXIgaW4gdGhlIENvYXN0YWwgRGlzdHJpY3RzICwgYW5kIGhpZ2hlciBpbiBDcmF3bGV5LCBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4IOKAkyBwb3NzaWJseSBhIHJlZmxlY3Rpb24gb2YgYWNjZXNzIHRvIGhpZ2hlciBwYWlkIGVtcGxveW1lbnQgb3Bwb3J0dW5pdGllcyBpbiBTdXJyZXkgYW5kL29yIExvbmRvbiBmcm9tIHRoZSB0aHJlZSBHYXR3aWNrIERpYW1vbmQgZGlzdHJpY3RzLlxcblxcbkluIGFsbCBkaXN0cmljdHMgYW5kIGJvcm91Z2hzIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBDcmF3bGV5IHRoZSBhbm51YWwgYXZlcmFnZSB3ZWVrbHkgZWFybmluZ3Mgb2YgcmVzaWRlbnRzIGlzIGhpZ2hlciB0aGFuIGl0IGlzIGZvciBwZW9wbGUgd29ya2luZyBpbiB0aGUgYXJlYS4gR3Jvd3RoIGluIHRoZSBlYXJuaW5ncyBvZiB3b3JrZXJzIGhhc27igJl0IGJlZW4gc28gaGlnaCBhcyBmb3IgcmVzaWRlbnRzLCBvdmVyYWxsIHBlb3BsZSB3b3JraW5nIGluIFdlc3QgU3Vzc2V4IGhhdmUgZW5qb3llZCBhbiBpbmNyZWFzZSBvZiA2LjAlIG9mIHdlZWtseSBlYXJuaW5nIHJhdGVzIGZyb20gMjAxMC0yMDE0LCB0aG91Z2ggb3ZlciB0aGUgeWVhciAyMDEzLTIwMTQgV2VzdCBTdXNzZXgsIEFkdXIsIEFydW4gQ2hpY2hlc3RlciBhbmQgV29ydGhpbmcgZWFybmluZ3MgbGV2ZWxzIG9mIHdvcmtlcnMgaW4gdGhlc2UgYXJlYXMgaGF2ZSBmYWxsZW4uXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0ZFNTk5NUZDLTYyNUYtNDkwQy1CN0I2LTg5RTVGRTY3Qzk3NlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJTb3VyY2U6IEFubnVhbCBTdXJ2ZXkgSG91cnMgYW5kIEVhcm5pbmdzLCAyMDE1IChPTlMvbm9taXMpXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkxpbmsgdG8gZWFybmluZ3MgZGF0YSBodHRwOi8vd3d3Lm9ucy5nb3YudWsvb25zL3JlbC9hc2hlL2FubnVhbC1zdXJ2ZXktb2YtaG91cnMtYW5kLWVhcm5pbmdzL2luZGV4Lmh0bWxcXG5cXG5cIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkltcHJvdmluZyBncm9zcyB3ZWVrbHkgcGF5IGZvciBmdWxsIHRpbWUgd29ya2VycyByZXNpZGVudCBpbiBXZXN0IFN1c3NleCB0byBiZSBhdCBvciBhYm92ZSDCozUyMi43MFwiLFwiaWNvblwiOlwiY3Jvc3NoYWlyXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiIEdyb3NzIHdlZWtseSBwYXkgZm9yIGZ1bGwgdGltZSB3b3JrZXJzIHJlc2lkZW50IGluIFdlc3QgU3Vzc2V4XCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvMEJGQTAwNkEtODI3Ny00ODBBLTlBNzQtMEMwMjIyREQ4NzlBXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMDItMDEtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiUG91bmRzIiwidGFyZ2V0Ijo1MjIuNywidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6NTMzLjIsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoidGV4eS1zZmRqIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDAyfSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCIsXCJ0YXJnZXRfdHlwZVwiOlwiYWJzb2x1dGVcIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX19LFwic3RhcnRcIjpcIjIwMTUtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTUtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJ0aGUgYXZlcmFnZSBlYXJuaW5ncyBpbiBXZXN0IFN1c3NleFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6ZmFsc2UsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiYmFkXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTExVDEzOjU1OjQ5Ljc2MloiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToxNjozNS43NDFaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTFUMTM6NTU6NDkuNzYyWiIsInRhcmdldF90b2xlcmFuY2UiOjQsImlkIjoiaWFxNC1pYzY5In0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTExVDEzOjU3OjE4LjgzOVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToxNjozNS44MzJaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTFUMTM6NTc6MTguODM5WiIsImNyZWF0ZWRfYnkiOiIzZHB2LWpyOG0ifSx7ImlkIjoiY2Nqay1nbndxIiwibmFtZSI6IlBheW1lbnQgdG8gU21hbGwgJiBNaWNybyBCdXNpbmVzc2VzIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJjcm9zc2hhaXJcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuRHVyaW5nIFEzIChPY3RvYmVyIHRvIERlY2VtYmVyIDIwMTcpIGEgdG90YWwgb2YgMzYsMTE0IGludm9pY2VzIHdpdGggMjAgZGF5IHBheW1lbnQgdGVybXMgd2VyZSByZWNlaXZlZCwgYW5kIDk0JSB3ZXJlIHBhaWQgb24gdGltZS4gQWx0aG91Z2ggYW4gaW1wcm92ZW1lbnQgY29tcGFyZWQgdG8gcHJldmlvdXMgbW9udGgsIGl0IGlzIHVubGlrZWx5IHRoYXQgd2Ugd2lsbCBhY2hpZXZlIDk2JSBieSB5ZWFyLWVuZC5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlBheW1lbnQgdG8gc21hbGwgYW5kIG1pY3JvIGJ1c2luZXNzZXMuIFdTQ0Mgd2lsbCBhaW0gdG8gcGF5IDk2JSBvZiBpbnZvaWNlcyB0byBzbWFsbCBhbmQgbWljcm8gYnVzaW5lc3NlcyB0aGF0IGFyZSBkb2luZyBidXNpbmVzcyB3aXRoIHVzIHdpdGhpbiAyMCB3b3JraW5nIGRheXNcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNy0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0IjoxMDAsInRhcmdldF90eXBlIjoicmVsYXRpdmUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjk2LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6ImZ0dmstdmNidCJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDE3fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcIm1haW50YWluXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE2fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTZ9fSxcInN0YXJ0XCI6XCIyMDE2LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE2LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwiSW52b2ljZXMgcGFpZCB3aXRoaW4gMjAgd29ya2luZyBkYXlzXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTExVDE3OjAyOjM3LjcxMloiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNlQwOTo0NzozNi4zODBaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTFUMTc6MDI6MzcuNzEyWiIsInRhcmdldF90b2xlcmFuY2UiOjUsImlkIjoieWdhaC1tcG14In0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTExVDE3OjAyOjQ4LjAzN1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNlQwOTo0NzozNi41MTJaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTFUMTc6MDI6NDguMDM3WiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiYW03bS16bXRqIiwibmFtZSI6IkJ1c2luZXNzIFN1cHBvcnQgYW5kIEdyYW50cyIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5CdXNpbmVzc2VzIHN1cHBvcnRlZCBieSBXU0NDLWxlZCBhbmQgc3VwcG9ydGVkIGJ1c2luZXNzIHN1cHBvcnQgaW5pdGlhdGl2ZXMg4oCTIHRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgbnVtYmVyIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MgbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlcy4gV2UgYWltIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgYnVzaW5lc3NlcyBzdXBwb3J0ZWQgdG8gMzAwIGJ1c2luZXNzZXMgYnkgTWFyY2ggMjAxNy5cXG5cXG5UaGUgbnVtYmVycyBvZiBidXNpbmVzc2VzIHN1cHBvcnRlZCB0aHJvdWdoIFdTQ0Mgb3IgV1NDQyBzdXBwb3J0ZWQgaW5pdGlhdGl2ZXMgYXJvdW5kIGJ1c2luZXNzIHN1cHBvcnRcXG5cXG4qKkhlYWx0aCBhbmQgTGlmZSoqICoqU2NpZW5jZXMqKlxcblxcbkR1cmluZyBRMyBXU0NDJ3MgY29tbWl0bWVudCB0byBzY2llbmNlLCB0ZWNobm9sb2d5LCBlbmdpbmVlcmluZyAmIG1hdGhlbWF0aWMgKFNURU0pIGhhcyBjb250aW51ZWQgdGhyb3VnaCBzcG9uc29yc2hpcCBhbmQgb2ZmaWNlciB0aW1lLCBwcmVwYXJhdGlvbiBpcyBpbiBmdWxsIHN3aW5nIGZvciAyMDE44oCZcyBTVEVNIGV2ZW50cy4gVXBjb21pbmcgU1RFTSBldmVudHMgY2FuIGJlIGZvdW5kIG9uIHRoZVtTVEVNIFN1c3NleCB3ZWJzaXRlXVswXS4gQWN0aXZpdGllcyBhcmUgcGxhbm5lZCBmb3IgYm90aCBwcmltYXJ5IGFnZSBwdXBpbHMgYW5kIHNlY29uZGFyeSBzY2hvb2wgc3R1ZGVudHMuIFBhcnRuZXJzaGlwcyBhY3Jvc3MgV2VzdCBTdXNzZXggYXJlIHdvcmtpbmcgaGFyZCB0byBlbnN1cmUgdGhhdCB5b3VuZyBwZW9wbGUgZGV2ZWxvcCB0aGUgc2tpbGxzIG5lZWRlZCBieSBpbmR1c3RyeS5cXG5cXG5JbiBRMSBhbiBFUkRGIHNlY3RvciBzdXBwb3J0IGNhbGwgY29uc2lzdGluZyBvZiBsaWZlIHNjaWVuY2UsIGRpZ2l0YWwsIGFuZCBhZHZhbmNlZCBtYW51ZmFjdHVyaW5nIOKAmGxvdHPigJkgd2FzIHJlbGVhc2VkLiBUaGUgcHJveGltaXR5IG9mIHRoZSBjYWxs4oCZcyByZWxlYXNlIHRvIHRoZSBzdW1tZXIgaG9saWRheXMgbWVhbnQgdGhhdCBubyBiaWRzIHdlcmUgc3VibWl0dGVkIGFuZCB0aGUgY2FsbCBoYXMgbm93IGJlZW4gcmUgcmVsZWFzZWQgaW4gUTMuIFdTQ0MsIHRocm91Z2ggdGhlIEVVIFByb2plY3QgUmVzb3VyY2VzIFByb2plY3QgaGFzIGJlZW4gYWN0aXZlbHkgZW5nYWdpbmcgcG90ZW50aWFsIHBhcnRuZXJzIHRvIGdlbmVyYXRlIGludGVyZXN0IGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBhIHN0cm9uZyBjb25zb3J0aXVtIGZvcm1pbmcgdG8gbGV2ZXJhZ2UgdGhlIGF2YWlsYWJsZSBmdW5kcyB0byBzdXBwb3J0IGJ1c2luZXNzZXMgaW4gdGhlIGFyZWEuIEEgbmF0aW9uYWwgb3JnYW5pc2F0aW9uIGhhcyBiZWVuIGlkZW50aWZpZWQgYXMgYSBwb3RlbnRpYWwgbGVhZCBwYXJ0bmVyIGFuZCBwb3NpdGl2ZSBjb252ZXJzYXRpb25zIGFyZSB1bmRlcndheSB0byBzaGFwZSB0aGUgc3VibWlzc2lvbi4gSWYgc3VjY2Vzc2Z1bCwgYSB0b3RhbCBwcm9qZWN0IHZhbHVlIG9mIHVwIHRvIMKjMTBtIGNvdWxkIGJlIGRlbGl2ZXJlZCBhY3Jvc3MgdGhlIENvYXN0IHRvIENhcGl0YWwgUmVnaW9uLlxcblxcbkR1cmluZyB0aGUgYXV0dW1uIHRoZSBEZXBhcnRtZW50IGZvciBCdXNpbmVzcywgRW5lcmd5IGFuZCBJbmR1c3RyaWFsIFN0cmF0ZWd5IHJlbGVhc2VkIHRoZSBzZWNvbmQgd2F2ZSBvZiBzY2llbmNlIGFuZCBpbm5vdmF0aW9uIHJlcG9ydHMuVGhlIHJlcG9ydHMgYXJlIEdvdmVybm1lbnQgc3BvbnNvcmVkIGF1ZGl0cyBkZXNpZ25lZCB0byBtYXAgYXNzZXRzIGFuZCBzaG93Y2FzZSByZWdpb25hbCBleGNlbGxlbmNlLiBUaGUgY291bnR5IG9mIFdlc3QgU3Vzc2V4IGlzIGluY29ycG9yYXRlZCBpbnRvIGFuIGF1ZGl0IGNhbGxlZCDigJhJbm5vdmF0aW9uIFNvdXRo4oCZLCBhIHJlZ2lvbiB3aGljaCBzdHJldGNoZXMgZnJvbSBEb3JzZXQgaW4gdGhlIHdlc3QsYWNyb3NzIHRvIEtlbnQgaW4gdGhlIGVhc3QsIGFuZCB1cCB0byBSZWFkaW5nLiBXU0NDIHByb3ZpZGVkIHNwb25zb3JzaGlwIGFuZCBoYWQgYW4gYWN0aXZlIHJvbGUgYXMgYSBjb25zb3J0aXVtIG1lbWJlciBpbiB0aGUgYXVkaXQuIFRoZSByZXBvcnQgZGVtb25zdHJhdGVzIHRoZSByZWdpb27igJlzIGV4Y2VsbGVuY2UgaW4gNSDigJhkaWdpdGFsIGVuYWJsaW5nIHRlY2hub2xvZ2llc+KAmWFjcm9zcyBmb3VyIHNlY3RvcnM6IGluY2x1ZGluZyBDb25uZWN0ZWQgRGlnaXRhbCwgTWFyaW5lIGFuZCBNYXJpdGltZSwgQmlvIHNjaWVuY2UgYW5kIEFkdmFuY2VkIEVuZ2luZWVyaW5nLiBJdCBmb2N1c3NlcyBvbiB0aGUgcmVnaW9u4oCZcyBoaWdoIGdyb3d0aCxoaWdoIHZhbHVlIGFuZCBhIGhpZ2hseSBzdWNjZXNzZnVsIGtub3dsZWRnZS1iYXNlZCByZWdpb25hbCBlY29ub215IGFuZCBpdHMgb3V0c3RhbmRpbmcgcG90ZW50aWFsIGZvciBmdXJ0aGVyIGlubm92YXRpb24gYW5kIGdyb3d0aC4gVGhlIHJlcG9ydCBjYW4gYmUgYWNjZXNzZWQgaGVyZTpcXG5cXG5wYWdlIFtodHRwczovL3d3dy5lbnRlcnByaXNlbTMub3JnLnVrL2lubm92YXRpb24tc291dGgtc2lhXVsxXVxcblxcbioqQm9nbm9yIFJlZ2lzIENyZWF0aXZlIERpZ2l0YWwgSHViKipcXG5cXG5UaGVyZSB3YXMgbm8gZXZlbnQgaGVsZCBvdmVyIHRoZSBsYXN0IHF1YXJ0ZXIgaG93ZXZlciBjb250YWN0IHdpdGggdGhlIGNyZWF0aXZlIGRpZ2l0YWwgc2VjdG9yIHRocm91Z2ggb3VyIHdlYnNpdGUgYW5kIHNvY2lhbCBtZWRpYSBwcmVzZW5jZSBoYXMgYmVlbiBtYWludGFpbmVkLiBJbiBRMywgd2UgaGFkIDE4NiBlbmdhZ2VtZW50cyBvbiBUd2l0dGVyIGZyb20gdGhlIGNvbW11bml0eSwgYW5kIHR3byBjb21wYW5pZXMgcG9zdGVkIHRoZWlyIGNvbnRlbnQgb24gb3VyIEZhY2Vib29rIGNvbW11bml0eSBwYWdlIHRvIHNoYXJlIHdpdGggdGhlIG90aGVyIGNvbW11bml0eSBtZW1iZXJzLiBUaGVyZSBoYXMgYmVlbiBlbmdhZ2VtZW50IHdpdGggc2l4IGJ1c2luZXNzZXMgaW4gcmVsYXRpb24gdG8gdGhlIHVwY29taW5nIHByb2N1cmVtZW50IGZvciBhIEh1YiBvcGVyYXRvci5cXG5cXG5BcyBiZWZvcmUsIHdlIGhhdmUgYSBjb250YWN0IGRhdGFiYXNlIG9mIGFyb3VuZCAyMDAgYnVzaW5lc3NlcyByZWNlaXZpbmcgcmVndWxhciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSHViIGNvbW11bml0eSBhbmQgZXZlbnRzIGV0Yy5cXG5cXG4qKkV4cGVyaWVuY2UgV2VzdCBTdXNzZXgqKlxcblxcblRoZSBFeHBlcmllbmNlIFdlc3QgU3Vzc2V4IDIwMTcgbWFya2V0aW5nIGNhbXBhaWduIGhhcyBub3cgY29uY2x1ZGVkLCBhbmQgdGhlIHdlYnNpdGUgbm93IGZlYXR1cmVzIGFyb3VuZCAyMzYgYnVzaW5lc3NlcywgYW4gaW5jcmVhc2Ugb2YgMTUgYnVzaW5lc3NlcyBmcm9tIE9jdG9iZXIgMjAxNy4gQW5hbHlzaXMgb2YgdGhlIDIwMTcgY2FtcGFpZ24gaXMgY3VycmVudGx5IHVuZGVyd2F5IGFuZCBmZWVkYmFjayBpcyBiZWluZyBzb3VnaHQgZnJvbSBmZWF0dXJlZCBidXNpbmVzc2VzIG9uY2UgYWdhaW4uIFRoZSBjYW1wYWlnbiBpcyBjb250aW51aW5nIGluIDIwMTggYW5kIHdpbGwgYmUgbGVkIGJ5IFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsLHdvcmtpbmcgd2l0aCBwYXJ0bmVycyBmcm9tIHRoZSBEaXN0cmljdCBhbmQgQm9yb3VnaHMgYW5kIHRoZSBTb3V0aCBEb3ducyBOYXRpb25hbCBQYXJrLlxcblxcbioqTEVBREVSKipcXG5cXG5UaGUgTEVBREVSIHRvdGFscyBmb3IgY3VycmVudCBwcm9ncmFtbWUgYXJlOlxcblxcbkV4cHJlc3Npb25zIG9mIEludGVyZXN0IHJlY2VpdmVkIGFuZCBwcm9jZXNzZWQgPSAxMTdcXG5cXG5HcmFudCBhcHBsaWNhdGlvbnMgYXBwcm92ZWQgPSAzNCBwcm9qZWN0cyBUb3RhbCBncmFudCBhcHByb3ZlZCA9wqMgMSwxMjIsMDg3XFxuXFxuQXNzb2NpYXRlZCBtYXRjaCBmdW5kaW5nID0gwqMyLjJtXFxuXFxuTmV3IGpvYnMgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgYnkgYXBwcm92ZWQgcHJvamVjdHMgPSAzOCBGVEVzXFxuXFxuQWRkaXRpb25hbCBvdmVybmlnaHQgc3RheXMgZm9yZWNhc3QgZm9yIG5leHQgMyB5ZWFycyA9IDYsOTA3XFxuXFxuTkIgLSB0aGUgZmlndXJlcyBhcmUgZm9yIHRoZSBwcm9ncmFtbWUgYXMgYSB3aG9sZSBub3QgdGhlIGxhc3QgcXVhcnRlclxcblxcbioqVGFzdGUgV2VzdCBTdXNzZXgqKlxcblxcbldlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGlzIHByb2dyZXNzaW5nIGEgVGFzdGUgV2VzdCBTdXNzZXggLSBicmluZ2luZyBwcm9kdWNlcnMgYW5kIGJ1eWVycyB0b2dldGhlciBpbml0aWF0aXZlLiBUaGUgbG9jYWwgZm9vZCBhbmQgZHJpbmsgc2VjdG9yIGlzIHZlcnkgaW1wb3J0YW50IHRvIHRoZSBlY29ub215IG9mIHRoZSBDb3VudHksIGFuZCBwcm9kdWNlcnMgd2lsbCBiZSBzdXBwb3J0ZWQgdG8gYWNjZXNzIG5ldyBtYXJrZXRzIGFuZCBidXllcnMgb2YgbG9jYWwgcHJvZHVjZS4gQSBzYW1wbGUgb2YgbG9jYWwgZm9vZCBhbmQgZHJpbmsgcHJvZHVjZXJzIHdlcmUgY29uc3VsdGVkIG9uIGRldmVsb3BtZW50IHN1cHBvcnQgdG8gZ3JvdyB0aGVpciBidXNpbmVzc2VzIHRocm91Z2ggb2ZmZXJpbmcgcHJvZHVjdHMgdG8gbmV3IGJ1eWVycywgYW5kIGJ5IGJ1aWxkaW5nIGxvbmcgdGVybSByZWxhdGlvbnNoaXBzIHdpdGggYnV5ZXJzLiBUaGUgY29uc3VsdGF0aW9uIGhhcyBzaGFwZWQgYSB0cmFpbmluZyBwcm9ncmFtbWUgZm9yIHByb2R1Y2VycyB0YWtpbmcgcGxhY2UgaW4gSmFudWFyeSAmIEZlYnJ1YXJ5LCBhbmQgYSAnTWVldCB0aGUgQnV5ZXInIEV2ZW50IHRoYXQgd2lsbCBicmluZyBwcm9kdWNlcnMgYW5kIGJ1eWVycyB0b2dldGhlciBpbiBGZWJydWFyeS5cXG5cXG5bMF06IGh0dHA6Ly93d3cuc3RlbXN1c3NleC5jby51ay9cXG5bMV06IGh0dHBzOi8vd3d3LmVudGVycHJpc2VtMy5vcmcudWsvaW5ub3ZhdGlvbi1zb3V0aC1zaWFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipMYXRlc3QgdXBkYXRlIC0gT2N0b2JlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqV2VzdCBTdXNzZXggSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIqKlxcblxcblRoZSBsYXRlc3QgY2x1c3RlciBkaXJlY3RvcnkgYW5kIGNvbXBhbnkgbWFwIGhhdmUgbm93IGJlZW4gcmVsZWFzZWQgb25saW5lIGFuZCBjYW4gYmUgZm91bmQgb24gdGhlIFdTSExDIHdlYnNpdGUuIFRoZSBkaXJlY3RvcnkgY29uc2lzdHMgb2YgYSBzZXJpZXMgb2YgcHJvZmlsZXMgd2hpY2ggcHJvdmlkZSBhbiBpbnRlcmVzdGluZyBpbnNpZ2h0IGludG8gdGhlIGFjdGl2aXRpZXMgb2Ygb3ZlciAxNDAgY29tcGFuaWVzIGluIHRoZSBjbHVzdGVyLlxcblxcbkR1cmluZyBRMiB0aGUgY291bnR5IGNvdW5jaWwgcGFydG5lcmVkIHdpdGggQ29nZW50IFNraWxscywgdGhlIFVLIHN0cmF0ZWdpYyBza2lsbHMgYm9keSBmb3IgdGhlIHNjaWVuY2UgaW5kdXN0cmllcywgdG8gaG9sZCBhbiBpbmZvcm1hdGl2ZSBhcHByZW50aWNlc2hpcCBsZXZ5IHdlYmluYXIuIDI1IHBlb3BsZSBhY2Nlc3NlZCB0aGUgbGl2ZSB3ZWJpbmFyIHdoaWNoIHdhcyByZWNvcmRlZCBhbmQgcGxhY2VkIG9ubGluZSBhcyBhIHNvdXJjZSB0b29sIGZvciB0aG9zZSB3aG8gd2VyZSB1bmFibGUgdG8gcGFydGljaXBhdGUgaW4gdGhlIGxpdmUgc3RyZWFtaW5nLiBCdXNpbmVzc2VzIHdpc2hpbmcgdG8gbGVhcm4gYWJvdXQgdGhlIHJlY2VudCByZWZvcm1zIGFuZCB0YWtlIGFkdmFudGFnZSBvZiB0aGUgY3VycmVudCA5MDoxMCBnb3Zlcm5tZW50IGFwcHJlbnRpY2VzaGlwIGZ1bmRpbmcgbW9kZWwgY2FuIGFjY2VzcyB0aGUgd2ViaW5hciBmb3IgZnJlZTpcXG5cXG5baHR0cHM6Ly9yZWdpc3Rlci5nb3Rvd2ViaW5hci5jb20vcmVnaXN0ZXIvOTQ0OTY4MTA3MjY0NDI3NTRdWzBdLlxcblxcbkR1cmluZyBRMiB0aGUgcmVzdWx0cyBmcm9tIHRoZSBDbHVzdGVyIFNraWxscyBhbmQgQnVzaW5lc3MgU3VwcG9ydCBTdXJ2ZXkgd2VyZSByZWNlaXZlZCB3aGljaCB3aWxsIGFzc2lzdCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBuZWVkcyBvZiB0aGUgY2x1c3Rlci4gVGhlIEV4ZWN1dGl2ZSBTdW1tYXJ5IHdpbGwgc2hvcnRseSBiZSByZWxlYXNlZC4gV29yayB3aXRoIHRob3NlIGNvbXBhbmllcyB3aG8sIGluIHRoZSBzdXJ2ZXksIHJlcXVlc3RlZCB0YWlsb3JlZCBzdXBwb3J0LCB3aWxsIGJlZ2luIGluIHRoZSBuZWFyIGZ1dHVyZS4gSW4gYWRkaXRpb24gdG8gdGhlc2UgYWN0aXZpdGllcywgY2x1c3RlciBlbmdhZ2VtZW50IGhhcyBjb250aW51ZWQgd2hpY2ggaW5jbHVkZXMsIHRocm91Z2ggbmV3c2xldHRlcnMgZXRjLiByZWd1bGFybHkgdXBkYXRpbmcgb3ZlciAzNjAgc3Rha2Vob2xkZXJzIG9uIGxpZmUgc2NpZW5jZSBhbmQgU1RFTSBhY3Rpdml0aWVzIGluIHRoZSBsb2NhbCByZWdpb24sIG5hdGlvbmFsIG9wcG9ydHVuaXRpZXMsIGV2ZW50cywgYW5kIGZ1bmRpbmcgb3Bwb3J0dW5pdGllcy5cXG5cXG4qKkxFQURFUioqXFxuXFxuVGhlIExFQURFUiBwcm9ncmFtbWUsIGxhdW5jaGVkIGluIE5vdmVtYmVyIDIwMTUgaXMgYSBncmFudCBmdW5kaW5nIHByb2dyYW1tZSB0aGF0IHN1cHBvcnRzIHRoZSBncm93dGggYW5kIGRldmVsb3BtZW50IG9mIHJ1cmFsIGJ1c2luZXNzZXMgYW5kIGlzIHBhcnQgb2YgdGhlIFJ1cmFsIERldmVsb3BtZW50IHByb2dyYW1tZSBmb3IgRW5nbGFuZCB3aGljaCBhaW1zIHRvIGltcHJvdmUgdGhlIGNvbXBldGl0aXZlbmVzcyBvZiBmYXJtaW5nIGFuZCBmb3Jlc3RyeSwgc3VwcG9ydGluZyBhIGRpdmVyc2UgYW5kIHN1Y2Nlc3NmdWwgcnVyYWwgZWNvbm9teSBhbmQgaGVscGluZyB0byBkZXZlbG9wIHZpYnJhbnQgYW5kIHRocml2aW5nIHJ1cmFsIGNvbW11bml0aWVzLlxcblxcblRvIGRhdGU6XFxuXFxuKiBFeHByZXNzaW9ucyBvZiBJbnRlcmVzdCByZWNlaXZlZCBhbmQgcHJvY2Vzc2VkID0gOTdcXG4qIEdyYW50IGFwcGxpY2F0aW9ucyBhcHByb3ZlZCA9IDI5IHByb2plY3RzXFxuKiBUb3RhbCBncmFudCBhcHByb3ZlZCA9IMKjODQxLDcwMVxcbiogQXNzb2NpYXRlZCBtYXRjaCBmdW5kaW5nID0gwqMxLjY4bVxcbiogTmV3IGpvYnMgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgYnkgcHJvamVjdHMgPSAzNS41IEZURXNcXG4qIEFkZGl0aW9uYWwgb3Zlcm5pZ2h0IHN0YXlzIGZvcmVjYXN0IGZvciBuZXh0IDMgeWVhcnMgPSA2LDkwN1xcblxcbioqVGFzdGUgV2VzdCBTdXNzZXgg4oCTIEVudGVycHJpc2UgUHJvbW90aW9uKipcXG5cXG5Xb3JrIGlzIHVuZGVyd2F5IGluIHByZXBhcmF0aW9uIGZvciBBIE1lZXQgdGhlIEJ1eWVyIGV2ZW50IHRvIGJlIGhlbGQgaW4gU3ByaW5nIDIwMTggd2l0aCB0aGUgcHVycG9zZSBvZiBpbmNyZWFzaW5nIHRoZSBvcHBvcnR1bml0aWVzIGZvciBXZXN0IFN1c3NleCBmb29kIGFuZCBkcmluayBwcm9kdWNlcnMgdG8gYWNjZXNzIHBvdGVudGlhbCBwdXJjaGFzZXJzLiBQcmlvciB0byB0aGUgZXZlbnQsIHByb2R1Y2VycyB3aWxsIGdldCBhY2Nlc3MgdG8gdHJhaW5pbmcgYW5kIGJ1c2luZXNzIHN1cHBvcnQgdG8gYWxsb3cgdGhlbSB0byBtYWtlIHRoZSBtb3N0IG9mIHRoZSBldmVudC4gSW4gdGVybXMgb2YgcHJvZ3Jlc3MgY29uc3VsdGF0aW9uIHdpdGggcHJvZ3JhbW1lIHBhcnRpY2lwYW50cyBoYXMgYmVlbiB1bmRlcnRha2VuLCB3aGljaCB3aWxsIGluZm9ybSB0cmFpbmluZyByZXF1aXJlbWVudHMuIEFuIG91dGxpbmUgZGVzaWduIG9mIHRyYWluaW5nLCBicmFuZGluZyBhbmQgZXZlbnQgc2NvcGUgaXMgYmVpbmcgZGV2ZWxvcGVkLiBBIENvbW11bmljYXRpb25zIFByb2dyYW1tZSBpcyB1bmRlcndheSBhbmQgdGhlcmUgaGFzIGJlZW4gYSBoaWdoIGxldmVsIG9mIGludGVyZXN0IGluIHBhcnRpY2lwYXRpbmcgaW4gdGhlIGV2ZW50IGZyb20gZm9vZCBhbmQgZHJpbmsgcHJvZHVjZXJzLiBEZXRhaWxzIG9uIHRoZSB0cmFpbmluZyBhbmQgdGhlIGV2ZW50IGl0c2VsZiB3aWxsIGJlIGF2YWlsYWJsZSBhdCB0aGUgZW5kIG9mIHRoZSBuZXh0IHF1YXJ0ZXIuXFxuXFxuKipFeHBlcmllbmNlIFdlc3QgU3Vzc2V4KipcXG5cXG5UaGUgKipFeHBlcmllbmNlIFdlc3QgU3Vzc2V4KiogdG91cmlzbSBjYW1wYWlnbiBsYXVuY2hlZCBpbiBNYXkgMjAxNywgYW5kIG5vdyBmZWF0dXJlcyBhcm91bmQgMjIxIGJ1c2luZXNzZXMsIGFuIGluY3JlYXNlIG9mIDEwMyBmcm9tIDIwMTYuIFByZXZpb3VzbHkgYnJhbmRlZCBhcyBXZXN0IFN1c3NleCBXZWVrZW5kcywgRXhwZXJpZW5jZSBXZXN0IFN1c3NleCBzaG93IGNhc2VzIHRoZSBuZXcgdGhlbWVzIG9mIGFjdGl2ZSBkYXlzLCBuZXcgZXhwZXJpZW5jZXMsIGJhY2stdG8tbmF0dXJlIGZhbWlseSBvdXRpbmdzIGFuZCBjdWx0dXJhbCBlbmNvdW50ZXJzIGFjcm9zcyB0aGUgY291bnR5LiBUaGUgd2Vic2l0ZSBhbmQgc29jaWFsIG1lZGlhIHBsYXRmb3JtcyBpbmNsdWRlIGZpcnN0IHBlcnNvbiBzdG9yaWVzLCB3ZWVrZW5kIGl0aW5lcmFyaWVzLCBldmVudHMgYXMgd2VsbCBhcyBncmVhdCBwbGFjZXMgdG8gZWF0LCBkcmluayBhbmQgc3RvcCBvZmYuIFRoZSBjYW1wYWlnbiBpcyBpbnRlbmRlZCB0byBpbnNwaXJlIHZpc2l0b3JzIGFuZCByZXNpZGVudHMgYW5kIHRvIGJlbmVmaXQgbG9jYWwgYnVzaW5lc3NlcyB0aHJvdWdoIGZlYXR1cmluZyB0aGVtIGluIHRoZSBjYW1wYWlnbi4gQnVzaW5lc3NlcyBoYXZlIGFsc28gYmVlbiBzdXBwb3J0ZWQgdGhyb3VnaCBzaWducG9zdGluZyB0byBncmFudCBmdW5kaW5nIGFuZCBjb21tZXJjaWFsIHNwYWNlIG9wcG9ydHVuaXRpZXMsIGFuZCB0aHJvdWdoIGV4cG9zdXJlIGZyb20gZmVhdHVyZXMgaW4gVGFzdGUgV2VzdCBTdXNzZXggbWFnYXppbmUuIFRoZSBjYW1wYWlnbiBpcyBsZWQgYnkgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwsIHdvcmtpbmcgd2l0aCBwYXJ0bmVycyBpbmNsdWRpbmcgdGhlIENvYXN0YWwgV2VzdCBTdXNzZXggVG91cmlzbSBHcm91cCBhbmQgdGhlIFNvdXRoIERvd25zIE5hdGlvbmFsIFBhcmsuXFxuXFxuKipUaGVyZSBhcmUgbm93IGFyb3VuZCAyMjAgYnVzaW5lc3NlcyBmZWF0dXJlZCBvbiB0aGUgRXhwZXJpZW5jZSBXZXN0IFN1c3NleCB3ZWJzaXRlLCBuZWFybHkgZG91YmxlIHRoYXQgcmVwb3J0ZWQgaW4gRGVjZW1iZXIgMjAxNi4qKlxcblxcbioqQm9nbm9yIFJlZ2lzIENyZWF0aXZlIERpZ2l0YWwgSHViKipcXG5cXG5UaGUgKipCb2dub3IgUmVnaXMgQ3JlYXRpdmUgRGlnaXRhbCBIdWIqKiBwcm9qZWN0IGFpbXMgdG8gZGV2ZWxvcCB0aGUgY3JlYXRpdmUgYW5kIGRpZ2l0YWwgc2VjdG9ycyBpbiBCb2dub3IgUmVnaXMgYW5kIGNvYXN0YWwgV2VzdCBTdXNzZXgsIHRvIGNyZWF0ZSBoaWdoIHZhbHVlIGpvYnMgaW4gaGlnaCBncm93dGggc2VjdG9ycy4gVGhlIHByb2plY3QgaW52b2x2ZXMgdGhlIGVzdGFibGlzaG1lbnQgb2YgYSBzaGFyZWQgYW5kIGNvbGxhYm9yYXRpdmUgd29ya3NwYWNlIHdpdGhpbiBCb2dub3IgUmVnaXMgcmFpbHdheSBzdGF0aW9uLCBhbmQgaXMgZHVlIHRvIGJlIGRlbGl2ZXJlZCBpbiBKdW5lIDIwMTguIEFzIHBhcnQgb2YgdGhlIHNlY3RvciBlbmdhZ2VtZW50IHdvcmsgaW4gc3VwcG9ydCBvZiB0aGUgQm9nbm9yIFJlZ2lzIENyZWF0aXZlIERpZ2l0YWwgSHViIHByb2plY3QsIHR3byBldmVudHMgd2VyZSBkZWxpdmVyZWQgaW4gUTIgYnkgV2lyZWQgU3Vzc2V4LlxcblxcblRoZSBmaXJzdCB3YXMgYSB3b3Jrc2hvcCBvbiAyN3RoIEp1bHkgZm9yIHByaW1hcnkgc2Nob29sLWFnZWQgY2hpbGRyZW4gaW4gZGlnaXRhbCBhbmltYXRpb24gYW5kIHdhcyBoZWxkIGF0IHRoZSBCYXNlIFNrYXRlcGFyayBpbiBCb2dub3IgUmVnaXMuIFRoZSBzZXNzaW9uIHdhcyBhdHRlbmRlZCBieSAyNCBjaGlsZHJlbiBmcm9tIDExIGxvY2FsIHByaW1hcnkgc2Nob29scywgYW5kIHdhcyBhIHBpbG90IGZvciBvdXRyZWFjaCBkaWdpdGFsIHNraWxscyBhY3Rpdml0aWVzIHRoYXQgbWF5IGJlIGNhcnJpZWQgb3V0IGJ5IHRoZSBIdWIgaW4gdGhlIGxvY2FsIGNvbW11bml0eS5cXG5cXG5UaGUgc2Vjb25kIGV2ZW50IHdhcyBoZWxkIG9uIDI3dGggU2VwdGVtYmVyIGF0IFRoZSBQaWVyIGluIEJvZ25vciBSZWdpcyBhbmQgd2FzIGEgbmV0d29ya2luZyBldmVudCBmb3IgdGhlIEh1YiBidXNpbmVzcyBjb21tdW5pdHkuIFRoZXJlIHdlcmUgZml2ZSBpbnZpdGVkIHNwZWFrZXJzIHdobyBzaGFyZWQgdGhlaXIgZXhwZXJpZW5jZXMgd2l0aCB0aGUgYXVkaWVuY2Ugb2YgMjYgYnVzaW5lc3MgcGVvcGxlLlxcblxcblRoZXJlIGFyZSBjdXJyZW50bHkgMjAyIGNvbnRhY3RzIG9uIHRoZSBDcmVhdGl2ZSBEaWdpdGFsIEh1YiBjb250YWN0IGRhdGFiYXNlLCB3aG8gcmVjZWl2ZSByZWd1bGFyIGVtYWlsIHVwZGF0ZXMuXFxuXFxuWzBdOiBodHRwczovL3JlZ2lzdGVyLmdvdG93ZWJpbmFyLmNvbS9yZWdpc3Rlci85NDQ5NjgxMDcyNjQ0Mjc1NFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4qKkJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MtbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlcyoqIOKAkyB0aGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgdGhlIG51bWJlciBvZiBidXNpbmVzc2VzIHN1cHBvcnRlZCBieSBXU0NDIGxlZCBhbmQgc3VwcG9ydGVkIGJ1c2luZXNzIHN1cHBvcnQgaW5pdGlhdGl2ZXMuXFxuXFxuT3ZlciB0aGUgbGFzdCBxdWFydGVyIE92ZXIgMTQwIGhlYWx0aCBhbmQgbGlmZSBzY2llbmNlIHJlbGF0ZWQgY29tcGFuaWVzIGhhdmUgbm93IGJlZW4gaWRlbnRpZmllZCBpbiB0aGUgY291bnR5LiBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBoYXMgY29udGludWVkIHRvIGZhY2lsaXRhdGUgaW50ZXJhY3Rpb25zIGJldHdlZW4gV2VzdCBTdXNzZXggSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIgY29tcGFuaWVzLCB1cGRhdGluZyB0aGVtIG9uIHNlY3RvciBmdW5kaW5nLCBvcHBvcnR1bml0aWVzIGFuZCBhY3Rpdml0aWVzLlxcblxcblRoaXMgcXVhcnRlciBoYXMgc2VlbiB0aGUgZGVsaXZlcnkgb2Ygc2V2ZXJhbCBTVEVNIChzY2llbmNlLCB0ZWNobm9sb2d5LCBlbmdpbmVlcmluZyBhbmQgbWF0aGVtYXRpY3MpIGFjdGl2aXRpZXMgYWltZWQgYXQgaW5zcGlyaW5nIHRoZSBuZXh0IGdlbmVyYXRpb24gdG8gc3R1ZHkgYW5kIGJ1aWxkIGNhcmVlcnMsIGFuZCB0byBkZXZlbG9wIHRoZSB0b29scyBhbmQgdGVjaG5pcXVlcyB0aGF0IHdpbGwgZHJpdmUgdGhlIGVjb25vbXkgb2YgdGhlIGZ1dHVyZS5NaWQgU3Vzc2V4IFNjaWVuY2UgV2VlaywgYW4gaW5pdGlhdGl2ZSBhaW1lZCBhdCBwcmltYXJ5IGFnZWQgc3R1ZGVudHMgaW4gdGhlIE1pZCBTdXNzZXggYXJlYSB0b29rIHBsYWNlIGluIE1pZC1KdW5lLiBDcmF3bGV5IFNURU0gZmVzdCwgbm93IGluIGl0cyBzaXh0aCB5ZWFyIHJhbiBmcm9tIE1heS1KdW5lLiBDcmF3bGV5IFNURU0gZmVzdCBpbmNsdWRlZCBpbi1zY2hvb2wgYWN0aXZpdGllcywgY29tcGFueSBzaXRlIHZpc2l0cywgYW5kIGEgY29tbXVuaXR5IGRheSBpbiBDcmF3bGV5LiBJdCBjdWxtaW5hdGVkIHdpdGggb3ZlciA5LDAwMCBzdHVkZW50cywgNDAgbG9jYWwgU1RFTSBlbXBsb3llcnMgYW5kIGEgbnVtYmVyIG9mIG5hdGlvbmFsIG9yZ2FuaXNhdGlvbnMgcGFydGljaXBhdGluZyBpbiB0aGUgQmlnIEJhbmcgRmFpciBTb3V0aCBFYXN0IGluIEFyZGluZ2x5LlxcblxcbkFuIEVSREYgc2VjdG9yIHN1cHBvcnQgY2FsbCBjb250YWluaW5nIGEgbGlmZSBzY2llbmNlcyBlbGVtZW50IGhhcyBiZWVuIHJlbGVhc2VkIGZvciB0aGUgQ29hc3QgdG8gQ2FwaXRhbCByZWdpb24uIFdTQ0MsIHRocm91Z2ggdGhlIEVVIFByb2plY3QgUmVzb3VyY2VzIFByb2plY3QgaGFzIGJlZW4gYWN0aXZlbHkgZW5nYWdpbmcgcG90ZW50aWFsIHBhcnRuZXJzIHRvIGdlbmVyYXRlIGludGVyZXN0IGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBhIHN0cm9uZyBjb25zb3J0aXVtIGZvcm1pbmcgdG8gbGV2ZXJhZ2UgdGhlIGF2YWlsYWJsZSBmdW5kcyB0byBzdXBwb3J0IGJ1c2luZXNzZXMgaW4gdGhlIGFyZWEuXFxuXFxuSW4gcmVsYXRpb24gdG8gdGhlIENyZWF0aXZlIERpZ2l0YWwgSHViIHNlY3RvciB3b3JrIGFyb3VuZCBCb2dub3IgUmVnaXMgYSBidXNpbmVzcyBicmVha2Zhc3Qgd2FzIGhlbGQgYXQgVGhlIFBpZXIgQm9nbm9yIFJlZ2lzIGluIE1heSBieSBXaXJlZCBTdXNzZXguIFBlZXIgdG8gcGVlciBhZHZpY2UgYW5kIGlkZWFzIHNlc3Npb25zIGhlbGQgaW4gZm91ciBncm91cHMgYWRkcmVzc2VkIGlzc3VlcyBpbmNsdWRpbmcgbWFya2V0aW5nIGFuZCBmaW5hbmNlcy4gMjUgYnVzaW5lc3NlcyB0b29rIHBhcnQuIEFuZCBpbiBKdW5lIDIwMTcgYW4g4oCYSWRlYXMgQ2xpbmlj4oCZIHdhcyBoZWxkIGF0IHRoZSBVbml2ZXJzaXR5IG9mIENoaWNoZXN0ZXIgQm9nbm9yIFJlZ2lzIGNhbXB1cyB3aGljaCBpbmNsdWRlZCBhbiBpbnRlbnNpdmUgcHJvYmxlbS1zb2x2aW5nIHNlc3Npb24gd2l0aCBsb2NhbCBjb21tdW5pdHkgYnVzaW5lc3Mgb3JnYW5pc2VycywgaW5jbHVkaW5nIHNvY2lhbCBlbnRlcnByaXNlcy4gU2V2ZW4gYnVzaW5lc3NlcyBhdHRlbmRlZCBhbmQgYWR2aWNlIHdhcyBwcm92aWRlZCBieSBhIEJ1c2luZXNzIE5hdmlnYXRvciBhbmQgdGhlIFVuaXZlcnNpdHnigJlzIGluY3ViYXRvciBtYW5hZ2VyLlxcblxcblVuZGVyIHRoZSBMRUFERVIgcHJvZ3JhbW1lIGFzIGF0IDMwIEp1bmUgb3VyIHR3byBMRUFERVIgTG9jYWwgQWN0aW9uIEdyb3VwcyBoYXZlIGFwcHJvdmVkIGdyYW50cyB0b3RhbGxpbmcgwqM2MTQsNjM4IGZvciAyMSBwcm9qZWN0cy5cXG5cXG5BdCBsZWFzdCAxNyBidXNpbmVzc2VzIGhhdmUgYmVlbiBkaXJlY3RseSBzdXBwb3J0ZWQuXFxuXFxuVG90YWwgdmFsdWUgb2YgdGhlIHByb2plY3RzIChpbmNsdWRpbmcgTEVBREVSIGdyYW50KSBpcyDCozEuOW0uXFxuXFxuVGhlIHByb2plY3RzIHdpbGwgY3JlYXRlIDM0IEZURSBqb2JzIGFuZCA0LDgxNCBhZGRpdGlvbmFsIG92ZXJuaWdodCBzdGF5cy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqQnVzaW5lc3NlcyBzdXBwb3J0ZWQgYnkgV1NDQy1sZWQgYW5kIHN1cHBvcnRlZCBidXNpbmVzcyBzdXBwb3J0IGluaXRpYXRpdmVzKiog4oCTIHRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgbnVtYmVyIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MgbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlcy4gV2UgYWltIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2ZidXNpbmVzc2VzIHN1cHBvcnRlZCB0byAzMDAgYnVzaW5lc3NlcyBieSBNYXJjaCAyMDE3LlxcblxcbioqMzUxKyBidXNpbmVzc2VzIGFzIFF1YXJ0ZXIgNCDigJNNYXJjaCAyMDE3KipcXG5cXG5UaGUgbnVtYmVycyBvZiBidXNpbmVzc2VzIHN1cHBvcnRlZCB0aHJvdWdoIFdTQ0Mgb3IgV1NDQyBzdXBwb3J0ZWQgaW5pdGlhdGl2ZXMgYXJvdW5kIGJ1c2luZXNzIHN1cHBvcnQ6XFxuXFxuT3ZlciB0aGUgbGFzdCBxdWFydGVyIHRoZSB1cGRhdGluZyBvZiBvdXIgZXhpc3RpbmcgKipXZXN0IFN1c3NleCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgQ2x1c3RlcioqIGNvbXBhbmllcyBvbiBmdW5kaW5nIG9wcG9ydHVuaXRpZXMsIGFuZCBoZWFsdGggYW5kIGxpZmUgc2NpZW5jZSBhY3Rpdml0aWVzIHRha2luZyBwbGFjZSBpbiB0aGUgcmVnaW9uIGhhcyBjb250aW51ZWQuIEluIGFkZGl0aW9uIHRoZXJlIGhhcyBiZWVuIHNvbWUgZW5nYWdlbWVudCB3aXRoIG5ldyBjbHVzdGVyIGNvbXBhbmllcywgYXMgd2VsbCBhcyBrbm93bGVkZ2UgdHJhbnNmZXIgbmV0d29ya3MgYW5kIG5hdGlvbmFsIHNlY3RvciBvcmdhbmlzYXRpb25zLiBUaGVyZSBoYXMgYmVlbiBhY3RpdmUgaW52b2x2ZW1lbnQgaW4gdGhlIElubm92YXRpb24gU291dGggU2NpZW5jZSBhbmQgSW5ub3ZhdGlvbiBBdWRpdCwgYSBHb3Zlcm5tZW50IGJhY2tlZCBpbml0aWF0aXZlIHRoYXQgaXMgY3VycmVudGx5IHRha2luZyBwbGFjZSBhbmQgd2hpY2ggYWltcyB0byBhc3Nlc3MgdGhlIFNvdXRoIG9mIEVuZ2xhbmTigJlzIHN0cmVuZ3RocyBpbiBkaWdpdGFsIGVuYWJsaW5nIHRlY2hub2xvZ2llcywgd2l0aCBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uIHRvIHRoZSBiaW8gc2NpZW5jZSwgYWR2YW5jZWQgZW5naW5lZXJpbmcsIG1hcmluZSBhbmQgbWFyaXRpbWUgYW5kIGNvbm5lY3RlZCBkaWdpdGFsIHNlY3RvcnMuIFdTQ0MgaGFzIHBhcnRpY2lwYXRlZCBpbiB0aGUgYXVkaXQgYW5kIGVuY291cmFnZWQgV1NITFNDIG1lbWJlcnMgdG8gYXR0ZW5kIGEgYmlvc2NpZW5jZSB0aGVtZWQgd29ya3Nob3Agd2hpY2ggdG9vayBwbGFjZSBpbiBDcmF3bGV5IGluIE1hcmNoLCBhbmQgZm9yIG1lbWJlcnMgdG8gY29udHJpYnV0ZSBldmlkZW5jZSB0byBzdXBwb3J0IHRoZSBzdHVkeS4gRmluZGluZ3MgZnJvbSB0aGUgYnVzaW5lc3Mgc3VydmV5IHVuZGVydGFrZW4gdG8gdW5kZXJzdGFuZCB0aGUgc2tpbGxzIGFuZCBidXNpbmVzcyBzdXBwb3J0IG5lZWRzIG9mIHRoZSBjbHVzdGVyIGlzIGV4cGVjdGVkIGxhdGVyIG9uIGluIHRoZSBTcHJpbmcuXFxuXFxuSW4gdGhlIGxhc3QgcXVhcnRlciwgQ29hc3RhbCBTVEVNZmVzdCBoYXMgbGF1bmNoZWQsIEdTSyBzaXRlIHZpc2l0cyBoYXZlIGNvbW1lbmNlZCBhbmQgdGhlIEJpZyBCYW5nQEJ1dGxpbnMgdG9vayBwbGFjZSBvbiBNYXJjaCAxNHRoIGR1cmluZyBOYXRpb25hbCBTY2llbmNlIFdlZWsgd2hpY2ggaW5jbHVkZWQgYSBudW1iZXIgb2YgYWN0aXZpdGllcyBwcm92aWRlZCBieSBsb2NhbCBhbmQgd2lkZXIgYWZpZWxkIGNvbXBhbmllcyBhbmQgb3JnYW5pc2F0aW9ucyBkZXNpZ25lZCB0byBpbnNwaXJlIGtleSBzdGFnZSAzICYgNCBzdHVkZW50cyB0byBjb250aW51ZSBzdHVkeWluZyBTVEVNIHN1YmplY3RzLCBhbmQgZGlzY292ZXIgY2FyZWVyIG9wcG9ydHVuaXRpZXMgYW5kIGlkZW50aWZ5IHBhdGh3YXlzIHRvIHJlYWNoIHRoZWlyIGFzcGlyYXRpb25zLiBPdmVyIDc1MCBwdXBpbHMsIGFuZCB0ZWFjaGVycyBhdHRlbmRlZCB0aGUgZXZlbnQuIC4gTWlkLVN1c3NleCBTY2llbmNlIFdlZWsgYW5kIENyYXdsZXkgU1RFTWZlc3QgaGF2ZSBib3RoIGxhdW5jaGVkIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBhY3Rpdml0aWVzIGFuZCBCaWcgQmFuZyBldmVudHMgc2NoZWR1bGVkIHRvIHRha2UgcGxhY2UgbGF0ZXIgb24gaW4gdGhlIHllYXIuXFxuXFxuSW4gdGhlIGxhc3QgcXVhcnRlciwgdGhlIEJvZ25vciBSZWdpcyBDcmVhdGl2ZSBEaWdpdGFsIEh1YiBwcm9qZWN0IGhhcyBlbmdhZ2VkIHdpdGggY3JlYXRpdmUgYW5kIGRpZ2l0YWwgYnVzaW5lc3NlcyBpbiBhbmQgYXJvdW5kIEJvZ25vciBSZWdpcyB0aHJvdWdoIG91ciBXaXJlZCBTdXNzZXggc2VjdG9yIGVuZ2FnZW1lbnQgY29udHJhY3QuIEFuIGV2ZW50IHdhcyBoZWxkIG9uIDI0dGggSmFudWFyeSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBDaGljaGVzdGVy4oCZcyBCb2dub3IgUmVnaXMgY2FtcHVzLCBhbmQgd2FzIGF0dGVuZGVkIGJ5IDQ4IGJ1c2luZXNzZXMuIFRoZSBmb2N1cyBvZiB0aGUgZXZlbnQgd2FzIGFzcGlyYXRpb25zLCBnb2FscyBhbmQgcmVzb2x1dGlvbnMgZm9yIDIwMTcsIGFuZCBpbmNsdWRlZCBhIHBhbmVsIGRpc2N1c3Npb24gd2l0aCBsb2NhbCBjcmVhdGl2ZSBhbmQgZGlnaXRhbCBidXNpbmVzcyBsZWFkZXJzLlxcblxcblRoaXMgd2FzIHRoZSBsYXN0IG9mIGZpdmUgYnVzaW5lc3MgZW5nYWdlbWVudCBldmVudHMgb3JnYW5pc2VkIG9uIG91ciBiZWhhbGYgYnkgV2lyZWQgU3Vzc2V4IGluIDE2LzE3LiBUaGUgY3VtdWxhdGl2ZSB0b3RhbCBvZiBidXNpbmVzc2VzIGF0dGVuZGluZyB0aGVzZSBldmVudHMgaW4gdGhlIHJlcG9ydGluZyB5ZWFyIHdhcyAxNDAsIHdpdGggYXZlcmFnZSBhdHRlbmRhbmNlIGF0IHRoZSBldmVudHMgaW5jcmVhc2luZyBmcm9tIDIwIGF0dGVuZGVlcyBpbiBBcHJpbCAyMDE2IHRvIDQ4IGluIEphbnVhcnkgMjAxNy5cXG5cXG5JbiBhZGRpdGlvbiwgYXJvdW5kIDI0MCBidXNpbmVzc2VzIGFyZSB1cGRhdGVkIG1vbnRobHkgYW5kIGVuZ2FnZWQgdGhyb3VnaCB0aGUgcHJvamVjdCBjb250YWN0IGRhdGFiYXNlLCBhbmQgc29jaWFsIG1lZGlhIGFjY291bnRzLlxcblxcblVuZGVyIHRoZSBjdXJyZW50IExFQURFUiBwcm9ncmFtbWUgYSB0b3RhbCBvZiA1NyBvdXRsaW5lIGFwcGxpY2F0aW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQgdG8gZGF0ZSwgd2l0aCwgc28gZmFyLCBhIHRvdGFsIG9mwqM0MjEsMjQ3IGJlaW5nIGNvbW1pdHRlZCB0byAxNCBhcHByb3ZlZCBwcm9qZWN0cy4gVGhlc2UgcHJvamVjdHMgd2lsbCBjcmVhdGUgYXBwcm94LiAyNiBGVEUgam9icyBhbmQgYW4gZXh0cmEgNCw4MTQgb3Zlcm5pZ2h0IHN0YXlzLiBUaGUgdG90YWwgbWF0Y2ggZnVuZGluZyBpcyDCozEsMDUyLDkzNywgc28gdG90YWwgdmFsdWUgb2YgdGhlIDE0IHByb2plY3RzID3CozEsNDc0LDE4NC4gQSBmdXJ0aGVyIDIxIHByb2plY3RzIGhhdmUgYmVlbiBpbnZpdGVkIHRvIGZ1bGwgYXBwbGljYXRpb24g4oCTIHJlcXVlc3RpbmcgZ3JhbnQgb2YgYXBwcm94LsKjNzUwLDAwMC4gQWxsIExFQURFUiBmdW5kaW5nIG11c3QgYmUgY29tbWl0dGVkIGJlZm9yZSB0aGUgVUsgbGVhdmVzIHRoZSBFVS5cXG5cXG4qKkJ1c2luZXNzIEZpbmFuY2UgUHJvamVjdCoqXFxuXFxuVGhlIGNhbGwgZm9yIGFwcGxpY2F0aW9ucyBoYXMgbm93IGNsb3NlZC4gT3ZlcmFsbCAyMDEgZW5xdWlyaWVzIGFuZCAxMDcgZXhwcmVzc2lvbnMgb2YgaW50ZXJlc3Qgd2VyZSByZWNlaXZlZCBmcm9tIGNvbXBhbmllcyBpbnRlcmVzdGVkIGluIGFwcGx5aW5nIGZvciBhIEJ1c2luZXNzIEdyb3d0aCBHcmFudC4gVGhpcyBjb252ZXJ0ZWQgdG8gMzYgZnVsbCBhcHBsaWNhdGlvbnMgYW5kIHJlc3VsdGVkIGluIDIzIGNvbXBhbmllcyByZWNlaXZpbmcgYW4gYXBwcm92YWwgZnJvbSB0aGUgR3Jvd3RoIEdyYW50IHBhbmVscyBpbiAyMDE2LzE3IHdoaWNoLGlmIGZ1bGx5IHNwZW50LCB3aWxsIHRvdGFsIMKjOTYwLDIxMC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSBudW1iZXJzIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIHRocm91Z2ggV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgKFdTQ0MpIG9yIFdTQ0Mgc3VwcG9ydGVkIGluaXRpYXRpdmVzIGFyb3VuZCBidXNpbmVzcyBzdXBwb3J0OlxcblxcbiogT3ZlciAxMjAgaGVhbHRoIGFuZCBsaWZlIHNjaWVuY2VzIHJlbGF0ZWQgY29tcGFuaWVzIGhhdmUgYmVlbiBzdXBwb3J0ZWQgdGhyb3VnaCB0aGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIGNsdXN0ZXIgbmV0d29yay4gQ29tcGFuaWVzIHdpdGhpbiB0aGUgY2x1c3RlciBhcmUgcmVndWxhcmx5IHVwZGF0ZWQgYWJvdXQgdGhlIHNlY3RvciBpbml0aWF0aXZlcyBXU0NDIGlzIHByb2dyZXNzaW5nLCByZWdpb25hbCBldmVudHMsIGZ1bmRpbmcgb3Bwb3J0dW5pdGllcywgbG9jYWwgcmVzZWFyY2gsIGFuZCBTVEVNIG9wcG9ydHVuaXRpZXMuIFdvcmsgaGFzIGNvbW1lbmNlZCB0byB1bmRlcnN0YW5kIHRoZSBza2lsbHMgYW5kIGJ1c2luZXNzIHN1cHBvcnQgbmVlZHMgb2YgdGhlIGNsdXN0ZXIgYW5kIGEgYnVzaW5lc3Mgc3VydmV5IGhhcyBiZWVuIGNvbW1pc3Npb25lZCBhbmQgcmVsZWFzZWQuIEFsbCBjbHVzdGVyIGNvbXBhbmllcyBoYXZlIGJlZW4gZ2l2ZW4gdGhlIG9wcG9ydHVuaXR5IHRvIGNvbnRyaWJ1dGUgdG8gdGhlIHdvcmsgYnkgaGlnaGxpZ2h0aW5nIGFueSBjaGFsbGVuZ2VzIHRoYXQgdGhleSBmYWNlLiBPbiBOb3ZlbWJlciA0dGggV1NITFNDIHBhcnRuZXJlZCB3aXRoIENvZ2VudCBTa2lsbHMsIHRoZSBzdHJhdGVnaWMgc2tpbGxzIGJvZHkgZm9yIHRoZSBzY2llbmNlIGluZHVzdHJpZXMgdG8gZGVsaXZlciBhIFNraWxscyBSZWZvcm0gYW5kIEFwcHJlbnRpY2VzaGlwIExldnkgV29ya3Nob3AuIDYgYnVzaW5lc3NlcyBhdHRlbmRlZCB0aGUgd29ya3Nob3AgYXMgZGlkIGxvY2FsIGF1dGhvcml0eSBhbmQgdW5pdmVyc2l0eSBwYXJ0bmVycy4gT24gRGVjZW1iZXIgNnRoIFdTSExTQyBwYXJ0bmVyZWQgd2l0aCBPQk4sIGEgaGVhbHRoIGFuZCBsaWZlIHNjaWVuY2VzIG1lbWJlcnNoaXAgb3JnYW5pc2F0aW9uIHRvIGRlbGl2ZXIgYW4gZXZlbnQgYXQgdGhlIEhvbGlkYXkgSW5uLCBHYXR3aWNrLSBXb3J0aCBvbiDigJhQdWJsaWMgTm9uLSBEaWx1dGFibGUgRnVuZGluZyBhbmQgRXhwb3J0IFN1cHBvcnTigJkuIFJhaWwgc3RyaWtlcyBhbmQgYWR2ZXJzZSB0cmFmZmljIGNvbmRpdGlvbnMgaGFkIGEgbmVnYXRpdmUgZWZmZWN0IG9uIG51bWJlcnMgcmVzdWx0aW5nIGluIDE0IGJ1c2luZXNzZXMgYW5kIDE3IGJ1c2luZXNzIGZvY3VzZWQgb3JnYW5pc2F0aW9ucyBhdHRlbmRpbmcgKHVuaXZlcnNpdGllcywgdGhlIExFUCwgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgZXRjLikuIFRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0d28gZXZlbnRzIGhhcyBiZWVuIHBsYWNlZCBvbmxpbmUgb24gdGhlIFdTSExTQyBzZWN0aW9uIG9mIHRoZSBCdXNpbmVzcyBXZXN0IFN1c3NleCB3ZWJzaXRlIHRvIHNlcnZlIGFzIGFuIGFkZGl0aW9uYWwgcmVzb3VyY2UgZm9yIHRob3NlIHdobyB3ZXJlIHVuYWJsZSB0byBhdHRlbmQgdGhlIGV2ZW50cy5cXG5cXG4qIFRoZSBCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gcmFuIGZvciBpdHMgc2Vjb25kIHllYXIgZnJvbSBNYXktT2N0b2JlciAyMDE2LCBhbmQgdGhlIHdlYnNpdGUgbm93IGZlYXR1cmVzIGFyb3VuZCAxMTggYnVzaW5lc3NlcyBhcyBwbGFjZXMgdG8gc3RvcCBvZmYgYW5kIHN0YXkgb24gcm91dGUgaW4gV2VzdCBTdXNzZXgsIGFuIGluY3JlYXNlIG9mIDQ4IG9uIHRoYXQgcHJldmlvdXNseSByZXBvcnRlZC4gRHVyaW5nIHRoZSBjYW1wYWlnbiwgYnVzaW5lc3NlcyByZWNlaXZlZCBpbiB0b3RhbCBvdmVyIDIsODAwIG91dGJvdW5kIGNsaWNrcyBmcm9tIHRoZSBjYW1wYWlnbiB3ZWJzaXRlLCBzb21lIG9mIHdoaWNoIHdlcmUgZGlyZWN0IGJvb2tpbmdzLiBMb2NhbCBidXNpbmVzc2VzIHdlcmUgYWxzbyBzdXBwb3J0ZWQsIHRocm91Z2ggc2lnbnBvc3RpbmcsIHRvIGdyYW50IGZ1bmRpbmcgYW5kIGRpZ2l0YWwgbWVkaWEgdHJhaW5pbmcsIGFuZCB0aHJvdWdoIGV4cG9zdXJlIGluIGZlYXR1cmVzIGluIFRhc3RlIFdlc3QgU3Vzc2V4IG1hZ2F6aW5lLiBBIGZvbGxvdy11cCBzdXJ2ZXkgd2FzIHVuZGVydGFrZW4gd2l0aCBhIGZpZnRoIG9mIHRoZSBmZWF0dXJlZCBidXNpbmVzc2VzIHRvIGdhaW4gZmVlZGJhY2sgb24gdGhlaXIgdmlld3Mgb2YgdGhlIDIwMTYgY2FtcGFpZ24uIFRoZSBmZWVkYmFjayB3ZSByZWNlaXZlZCB3YXMgcG9zaXRpdmUsIGFuZCBrZXkgbWVzc2FnZXMgaW5jbHVkZWQgc3VwcG9ydCBmb3IgY29udGludWluZyBhbmQgZXhwYW5kaW5nIHRoZSBjYW1wYWlnbiwgY3JlYXRpbmcgYSBncmVhdGVyIG51bWJlciBvZiBwbGFjZS1iYXNlZCBpdGluZXJhcmllcyB0byBpbnNwaXJlIHZpc2l0b3JzLCBhbmQgZGV2ZWxvcGluZyBmdXJ0aGVyIGxpbmthZ2VzIHdpdGggbG9jYWwgYXR0cmFjdGlvbnMuIFRoZSBjYW1wYWlnbiBpcyBjb250aW51aW5nIHRocm91Z2hvdXQgdGhlIFdpbnRlciwgdG8gcHJvbW90ZSBXZXN0IFN1c3NleCBhcyBhbiBhdHRyYWN0aXZlIHZpc2l0b3IgZGVzdGluYXRpb24sIHdpdGggdGhlIGFpbSB0byByZWNydWl0IGFuZCBzdXBwb3J0IG1vcmUgbG9jYWwgYnVzaW5lc3NlcyBpbiAyMDE3LlxcblxcbiogVW5kZXIgdGhlIGN1cnJlbnQgTEVBREVSIHByb2dyYW1tZSwgQ2VudHJhbCBTdXNzZXggYW5kIFN1c3NleCBEb3ducyAmIENvYXN0YWwgUGxhaW4gTEVBREVSIExvY2FsIEFjdGlvbiBHcm91cHMgaGF2ZSBhcHByb3ZlZCBhIHRvdGFsIG9mIDEzIHByb2plY3RzIHdpdGggZ3JhbnRzIHRvdGFsbGluZyDCozM4MCw2NzQuIFRoZXNlIGFyZSBmb3JlY2FzdCB0byBjcmVhdGUgMjUgbmV3IGZ1bGwgdGltZSBlcXVpdmFsZW50IGpvYnMgYW5kIDQsODE0IGFkZGl0aW9uYWwgb3Zlcm5pZ2h0IHN0YXlzIG92ZXIgdGhlIG5leHQgdGhyZWUgeWVhcnMuIFRoZSB0b3RhbCBtYXRjaCBmdW5kaW5nIGFzc29jaWF0ZWQgd2l0aCBMRUFERVIgZ3JhbnRzIGlzIMKjODUyLDYxMCB3aGljaCBlcXVhdGVzIHRvIGEgdG90YWwgcHJvamVjdCB2YWx1ZSBvZiDCozEsMjMzLDI4NC5cXG5cXG4qIFRoZSBCdXNpbmVzcyBGaW5hbmNlIFByb2plY3QgcmVjZWl2ZWQgMjAxIGVucXVpcmllcyBhbmQgMTA3IGV4cHJlc3Npb25zIG9mIGludGVyZXN0IGZyb20gY29tcGFuaWVzIGludGVyZXN0ZWQgaW4gYXBwbHlpbmcgZm9yIGEgQnVzaW5lc3MgR3Jvd3RoIEdyYW50IChhZGRpdGlvbmFsIDM2IHRvIHRoYXQgcHJldmlvdXNseSByZXBvcnRlZCkuIFRoaXMgY29udmVydGVkIHRvIDM2IGZ1bGwgYXBwbGljYXRpb25zIGFuZCByZXN1bHRlZCBpbiAyNCBjb21wYW5pZXMgcmVjZWl2aW5nIGFuIGFwcHJvdmFsIGZyb20gdGhlIEdyb3d0aCBHcmFudCBwYW5lbHMgaW4gMjAxNi8xNyB3aGljaCwgaWYgZnVsbHkgc3BlbnQsIHdpbGwgdG90YWwgwqMxLDEwOCw3NzEuXFxuXFxuSW4gdGhlIGxhc3QgcXVhcnRlciB3aXRoIHJlZ2FyZCB0byB0aGUgQ3JlYXRpdmUvRGlnaXRhbCBwcm9wb3NpdGlvbiBXaXJlZCBTdXNzZXggaGF2ZSBkZWxpdmVyZWQgdHdvIHNlY3RvciBlbmdhZ2VtZW50IGV2ZW50cyBhcyBwYXJ0IG9mIHRoZWlyIHdvcmsgb24gdGhlIEJvZ25vciBSZWdpcyBDcmVhdGl2ZSBEaWdpdGFsIEh1YiBwcm9qZWN0LiBUaGUgZmlyc3Qgd2FzIGhlbGQgYXQgT3hmb3Jk4oCZcyBCYXIgaW4gQm9nbm9yIFJlZ2lzIG9uIDE1IE5vdiBhbmQgd2FzIGF0dGVuZGVkIGJ5IDMxIGNyZWF0aXZlIGRpZ2l0YWwgYnVzaW5lc3Nlcy4gVGhlIGV2ZW50IGluY2x1ZGVkIGEgcHJlc2VudGF0aW9uIGJ5IE1hdHQgRGVzbWllciBmcm9tIHRoZSBCb3VybmVtb3V0aCBhbmQgUG9vbGUgZGlnaXRhbCBjbHVzdGVyIGFib3V0IHRoZWlyIGV4cGVyaWVuY2Ugb2YgZGV2ZWxvcGluZyB0aGUgc2VjdG9yIGluIHRoYXQgYXJlYSwgYW5kIGEgcHJlc2VudGF0aW9uIG9mIHRoZSByZXN1bHRzIG9mIHRoZSBXaXJlZCBTdXNzZXggY3JlYXRpdmUgZGlnaXRhbCBzZWN0b3Igc3VydmV5LiBXaXJlZCBTdXNzZXggY2FycmllZCBvdXQgYSBzdXJ2ZXkgb2YgY3JlYXRpdmUgZGlnaXRhbCBidXNpbmVzc2VzIGluIEJvZ25vciBSZWdpcyB0byB1bmRlcnN0YW5kIHRoZSBnZW9ncmFwaGljYWwgYW5kIHNlY3RvcmFsIHJhbmdlIG9mIGJ1c2luZXNzZXMgY3VycmVudGx5IGVuZ2FnZWQgd2l0aCB0aGUgcHJvamVjdC4gT3ZlciAxMDAgYnVzaW5lc3NlcyB3ZXJlIGNvbnRhY3RlZCBhbmQgNDUgcmVzcG9uc2VzIHJlY2VpdmVkLiBUaGUgc2Vjb25kIGV2ZW50IHdhcyBoZWxkIG9uIDEzIERlYyBhdCBUaGUgUGllciBpbiBCb2dub3IgUmVnaXMgYW5kIDIxIGJ1c2luZXNzZXMgYXR0ZW5kZWQuIFNwZWFrZXJzIGluY2x1ZGVkIE1pa2UgSG9sbGV5LCBIZWFkIG9mIHRoZSBEZXBhcnRtZW50IG9mIENyZWF0aXZlIGFuZCBEaWdpdGFsIFRlY2hub2xvZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgQ2hpY2hlc3Rlciwgd2hvIHNwb2tlIGFib3V0IHRoZSBVbml2ZXJzaXR54oCZcyBuZXcgRW5naW5lZXJpbmcgYW5kIERpZ2l0YWwgVGVjaG5vbG9neSBQYXJrIGR1ZSB0byBvcGVuIGluIDIwMTguXFxuXFxuSW4gYWRkaXRpb24sIG1vbnRobHkgdXBkYXRlIGVtYWlscyBhcmUgc2VudCB0byAyMjggY29udGFjdHMgb24gV2lyZWQgU3Vzc2V44oCZcyBCb2dub3IgaHViIGRhdGFiYXNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSBudW1iZXJzIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIHRocm91Z2ggV1NDQyBvciBXU0NDIHN1cHBvcnRlZCBpbml0aWF0aXZlcyBhcm91bmQgYnVzaW5lc3Mgc3VwcG9ydDpcXG5cXG5PdmVyIDEyMCBoZWFsdGggYW5kIGxpZmUgc2NpZW5jZXMgcmVsYXRlZCBjb21wYW5pZXMgaGF2ZSBiZWVuIHN1cHBvcnRlZCB0aHJvdWdoIHRoZSBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgY2x1c3RlciBuZXR3b3JrLiAuIENvbXBhbmllcyB3aXRoaW4gdGhlIGNsdXN0ZXIgYXJlIHJlZ3VsYXJseSB1cGRhdGVkIGFib3V0IHRoZSBzZWN0b3IgaW5pdGlhdGl2ZXMgV1NDQyBpcyBwcm9ncmVzc2luZywgcmVnaW9uYWwgZXZlbnRzLCBmdW5kaW5nIG9wcG9ydHVuaXRpZXMsIGxvY2FsIHJlc2VhcmNoLCBhbmQgU1RFTSBvcHBvcnR1bml0aWVzLiBXU0NDIGlzIHdvcmtpbmcgaGFyZCB0byBncm93IHRoZSBjbHVzdGVyIGFuZCBkZXZlbG9wIGEgcHJvZ3JhbW1lIG9mIHN1cHBvcnQgd2hpY2ggd2lsbCBhZGQgcmVhbCB2YWx1ZSB0byBjb21wYW5pZXMgd2l0aGluIHRoZSByZWdpb24uIFRoZSBwcm9ncmFtbWUgb2Ygc3VwcG9ydCB3aWxsIGJlZ2luIGZ1bGx5IGluIE5vdmVtYmVyIGFuZCBkZXRhaWwgZnJvbSB0aGVtIHJlcG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIG5leHQgcXVhcnRlci5cXG5cXG5PbiB0aGVDcmVhdGl2ZS9EaWdpdGFsIHByb3Bvc2l0aW9uIFdpcmVkIFN1c3NleCBoZWxkIGFuIGVuZ2FnZW1lbnQgZXZlbnQgZm9yIHRoZSBzZWN0b3IgaW4gU2VwdGVtYmVyIGFzIHBhcnQgb2YgdGhlaXIgc2VjdG9yIGRldmVsb3BtZW50IGNvbnRyYWN0LiAyMCBidXNpbmVzc2VzIGF0dGVuZGVkLiBCcmFuZGluZyBpZGVhcyBmb3IgdGhlIGh1YiBhcyB3ZWxsIGFzIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgaW50ZXJuYWwgcGxhbnN3ZXJlIHByZXNlbnRlZCBieSBIZW1taW5nd2F5IERlc2lnbiBhbG9uZyB3aXRoIGEgcmVzdW1lIG9mIHdvcmsgdW5kZXJ0YWtlbiB0byBkYXRlLCBhbmQgZGlzY3Vzc2lvbnMgb3ZlciB0aGUgbmV4dCBzdGVwcy4gVGhlcmUgd2FzIG5ldHdvcmtpbmcgb3Bwb3J0dW5pdGllcyBmb3IgdGhvc2UgYnVzaW5lc3NlcyBhdHRlbmRpbmcgYW5kIGRpc2N1c3Npb25zIG92ZXIgdGhlIHBsYW5zIGZvciBlbmNvdXJhZ2luZyBncm93dGggaW4gdGhpcyBzZWN0b3IuXFxuXFxuT3VyIHR3byBMRUFERVIgTG9jYWwgQWN0b24gR3JvdXBzIChMQUdzKSBoYXZlIHNvIGZhciBhcHByb3ZlZCBncmFudHMgdG90YWxsaW5nIMKjMzM3LDkzMSBmb3IgMTEgcHJvamVjdHMgd2hpY2ggYXJlIGZvcmVjYXN0IHRvIGNyZWF0ZSAyMyBuZXcgRlRFIGpvYnMuIEF0IGxlYXN0IDExIGJ1c2luZXNzZXMgaW4gdG90YWwgd2lsbCBiZW5lZml0LiBIb3dldmVyIHRoZSBMQUdzIGV4dGVuZCB0byBhcmVhcyBvdXRzaWRlIG9mIFdlc3QgU3Vzc2V4LCBXaXRoaW4gV2VzdCBTdXNzZXggdGhlcmUgYXJlIDcgcHJvamVjdHMgd2hpY2ggaGF2ZSBiZWVuIGFwcHJvdmVkLCBmb3JlY2FzdCB0byBjcmVhdGUgMTcuNyBGVEUgam9icyBhbmQgdG90YWxsaW5nIMKjMjQ2LDA2My4gVGhlIHByb2plY3RzIGluIFdlc3QgU3Vzc2V4IGFyZSBsaXN0ZWQgYmVsb3csIG9ubHkgdGhlIGZpcnN0IG9uZSBsaXN0ZWQgaGFzIGJlZW4gY29tcGxldGVkIGFuZCB0aGUgb3RoZXJzIGFyZSBpbiBwcmVwYXJhdGlvbjpcXG5cXG4qIEx1eHVyeSBsb2RnZXMgb24gYSB2aW5leWFyZCB0byBwcm9tb3RlIHdpbmUgdG91cmlzbVxcblxcbiogRmFybSBidW5raG91c2Ugc3R5bGUgYWNjb21tb2RhdGlvbiBuZWFyIHRoZSBTb3V0aCBEb3ducyBXYXkgZm9yIGN5Y2xpc3RzIGFuZCB3YWxrZXJzXFxuXFxuKiBOZXcgZXF1aXBtZW50IGZvciBhIGZvb2QgcHJvY2Vzc2luZyBjb21wYW55IGluY2x1ZGluZyBjb21tZXJjaWFsaXNhdGlvbiBvZiBhIG5ldyDigJxjbGVhbuKAnSB0ZWNobm9sb2d5IGZvciBzbW9raW5nIGluZ3JlZGllbnRzXFxuXFxuKiBNb2Rlcm4gZGlnaXRhbCBlcXVpcG1lbnQgZm9yIGEgbG9jYWwgbGFiZWwgcHJpbnRpbmcgYnVzaW5lc3NcXG5cXG4qIEZvcmVzdHJ5IGhhcnZlc3RlciBoZWFkIGZvciBhIGZhcm0gYmFzZWQgYmlvbWFzcyBidXNpbmVzc1xcblxcbiogU3RyYXcgc2hyZWRkaW5nIGFuZCBwZWxsZXRpbmcgZXF1aXBtZW50IGZvciBhIGRpdmVyc2lmaWVkIGZhcm0gYnVzaW5lc3MgcHJvZHVjaW5nIGFuaW1hbCBiZWRkaW5nIGFuZCBiaW9tYXNzIGZvciB3b29kLWJ1cm5pbmcgYm9pbGVyc1xcblxcbiogTmV3IHNpZ25hZ2UgYW5kIHdlYnNpdGUgcHJvbW90aW5nIGFjY2Vzc2libGUgd2Fsa3MgYXJvdW5kIEJyYW1iZXJcXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXaXRoIHJlZ2FyZCB0byB0aGUgQnVzaW5lc3MgRmluYW5jZSBQcm9qZWN0IDE3NSBidXNpbmVzc2VzIGhhdmUgYmVlbiBpbiBkaXNjdXNzaW9uIG92ZXIgcHJvcG9zZWQgcHJvamVjdHMsIGFuZCBzbyBmYXIgNiBoYXZlIGRlY2xhcmVkIHRoZXkgaW50ZW50IHRvIHN1Ym1pdCBhbiBFeHByZXNzaW9uIG9mIEludGVyZXN0IChFT0kpLiBUaGUgdGFibGUgb24gdGhlIHJpZ2h0IHNob3dzIHRoZSBsYXRlc3QgcG9zaXRpb24gZm9yIHRoZSBwcm9qZWN0IGluIHRlcm1zIG9mIGFwcGxpY2F0aW9ucyBzbyBmYXIuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOTU2QTdCNkItQjM4Qy00OEZFLThCN0EtRkM5OTk1QzY4OTBBXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkZvbGxvd2luZyBoaXMgYW5ub3VuY2VtZW50IGluIEF1Z3VzdCwgb24gdGhlIGZ1dHVyZSBvZiBFVSBmdW5kaW5nIGluIHRoZSBjb250ZXh0IG9mIEJyZXhpdCBhbmQgd2hpY2ggZ3VhcmFudGVlZCBmdW5kcyBmb3IgcHJvamVjdHMgc2lnbmVkIHVwIHVudGlsIHRoZSBBdXR1bW4gU3RhdGVtZW50IChOb3ZlbWJlciAyMDE2KSwgdGhlIENoYW5jZWxsb3IgaGFzIG5vdyBleHRlbmRlZCB0aGlzIGd1YXJhbnRlZSB0byB0aGUgcG9pbnQgYXQgd2hpY2ggdGhlIFVLIGRlcGFydHMgdGhlIEVVLiBUaGUgQ2hhbmNlbGxvciBjb25maXJtZWQgdGhhdCB0aGUgZ292ZXJubWVudCB3aWxsIGd1YXJhbnRlZSBFVSBmdW5kaW5nIGZvciBzdHJ1Y3R1cmFsIGFuZCBpbnZlc3RtZW50IGZ1bmQgcHJvamVjdHMsIGluY2x1ZGluZyBhZ3JpLWVudmlyb25tZW50IHNjaGVtZXMsIHNpZ25lZCBhZnRlciB0aGUgQXV0dW1uIFN0YXRlbWVudCBhbmQgd2hpY2hjb250aW51ZSBhZnRlciB3ZSBoYXZlIGxlZnQgdGhlIEVVLlxcblxcbkhlIHdhcyBjbGVhciwgd2hpbGUgdGhlIFVLIGlzIHN0aWxsIGEgbWVtYmVyIG9mIHRoZSBFVSwgQnJpdGlzaCBidXNpbmVzc2VzLCBmYXJtZXJzIGFuZCBvdGhlciBvcmdhbmlzYXRpb25zIG11c3QgYmUgZW50aXRsZWQgdG8gYXBwbHkgZm9yIEVVZnVuZHMuIEZ1bmRpbmcgZm9yIHByb2plY3RzIHdpbGwgYmUgaG9ub3VyZWQgYnkgdGhlIGdvdmVybm1lbnQsIGlmIHRoZXkgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XFxuXFxuKiB0aGV5IGFyZSBnb29kIHZhbHVlIGZvciBtb25leVxcblxcbiogdGhleSBhcmUgaW4gbGluZSB3aXRoIGRvbWVzdGljIHN0cmF0ZWdpYyBwcmlvcml0aWVzXFxuXFxuQXMgYSByZXN1bHQsIEJyaXRpc2ggYnVzaW5lc3NlcywgZmFybWVycyBhbmQgb3RoZXIgb3JnYW5pc2F0aW9ucyB3aWxsIGhhdmUgYWRkaXRpb25hbCBjZXJ0YWludHkgb3ZlciBmdXR1cmUgZnVuZGluZyBhbmQgc2hvdWxkIGNvbnRpbnVlIHRvIGFwcGx5IGZvciBFVSBmdW5kaW5nIHdoaWxlIHRoZSBVSyByZW1haW5zIGEgbWVtYmVyIG9mIHRoZSBFVS5cXG5cXG5UaGUgYW5ub3VuY2VtZW50IG1hZGUgb24gMyBPY3RvYmVyIDIwMTYgYnVpbGRzIG9uIHRoZSBhc3N1cmFuY2VzIGdpdmVuYnkgdGhlIENoYW5jZWxsb3IgaW4gQXVndXN0IHdoaWNoIGFsc28gaW5jbHVkZWQ6XFxuXFxuKiBhbGwgc3RydWN0dXJhbCBhbmQgaW52ZXN0bWVudCBmdW5kIHByb2plY3RzLCBpbmNsdWRpbmcgYWdyaS1lbnZpcm9ubWVudCBzY2hlbWVzLCBzaWduZWQgYmVmb3JlIHRoZSBBdXR1bW4gU3RhdGVtZW50IHdpbGwgYmUgZnVsbHkgZnVuZGVkLCBldmVuIHdoZW4gdGhlc2UgcHJvamVjdHMgY29udGludWUgYmV5b25kIHRoZSBVS+KAmXMgZGVwYXJ0dXJlIGZyb20gdGhlIEVVXFxuXFxuKiBhbGwgZGlyZWN0IGNvbXBldGl0aXZlbHkgYmlkIHByb2plY3RzIGRpcmVjdGx5IHdpdGggdGhlIEV1cm9wZWFuIENvbW1pc3Npb24sIGZvciBleGFtcGxlIHVuaXZlcnNpdGllcyBwYXJ0aWNpcGF0aW5nIGluIEhvcml6b24gMjAyMFxcblxcbiogdGhlIGN1cnJlbnQgbGV2ZWwgb2YgYWdyaWN1bHR1cmFsIGZ1bmRpbmcgdW5kZXIgQ0FQIHBpbGxhciAxIHdpbGwgYmUgdXBoZWxkIHVudGlsIDIwMjAgYXMgcGFydCBvZiB0aGUgdHJhbnNpdGlvbiB0byBuZXcgZG9tZXN0aWMgYXJyYW5nZW1lbnRzXFxuXFxuW2h0dHBzOi8vd3d3Lmdvdi51ay9nb3Zlcm5tZW50L25ld3MvZnVydGhlci1jZXJ0YWludHktb24tZXUtZnVuZGluZy1mb3ItaHVuZHJlZHMtb2YtYnJpdGlzaC1wcm9qZWN0c11bMF1cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lmdvdi51ay9nb3Zlcm5tZW50L25ld3MvZnVydGhlci1jZXJ0YWludHktb24tZXUtZnVuZGluZy1mb3ItaHVuZHJlZHMtb2YtYnJpdGlzaC1wcm9qZWN0c1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xcblxcblRoZSBudW1iZXJzIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIHRocm91Z2ggV1NDQyBvciBXU0NDIHN1cHBvcnRlZCBpbml0aWF0aXZlcyBhcm91bmQgYnVzaW5lc3Mgc3VwcG9ydDpcXG5cXG5UaGUgdXBzaG90IGlzIHRoYXQgdGhlcmUgYXJlIGFyb3VuZCA5MCBidXNpbmVzc2VzIHN1cHBvcnRlZCB0aHJvdWdoIHRoZSBIZWFsdGggYW5kIExpZmUgc2NpZW5jZXMgY2x1c3RlciBuZXR3b3JrLCAxMSBjb21wYW5pZXMgaGF2ZSBwYXJ0aWNpcGF0ZWQgb3IgYXJlIGNvbW1pdHRlZCB0byBwYXJ0aWNpcGF0aW5nIGluIFNURU0gaW5pdGlhdGl2ZXMgdGhhdCBXU0NDIGhhdmUgcGFydCBmdW5kZWQuIEl0IGlzIHRoZSBpbnRlbnRpb24gdG8gaG9sZCBhIHNlY29uZCBjbHVzdGVyIGV2ZW50IGluIE5vdmVtYmVyLlxcblxcbk9uIHRoZSBDcmVhdGl2ZS9EaWdpdGFsIHByb3Bvc2l0aW9uIGEgbmV0d29ya2luZyBldmVudCB3YXMgaGVsZCBhdCB0aGUgV2F2ZXJsZXkgSG90ZWwgaW4gQm9nbm9yIFJlZ2lzIGluIEFwcmlsLCAyMCBidXNpbmVzc2VzIGF0dGVuZGVkLiBUaGUgcGxhbnMgZm9yIHRoZSBuZXcgaHViIGFuZCBpdHMgbGlua3MgdG8gdGhlIFVuaXZlcnNpdHnigJlzIG5ldyBFbmdpbmVlcmluZyBhbmQgRGlnaXRhbCBUZWNobm9sb2d5IFBhcmsgd2VyZSBkaXNjdXNzZWQgYW5kIGJ1c2luZXNzZXMgYW5kIG90aGVyIHN0YWtlaG9sZGVycyB3ZXJlIGFibGUgdG8gZmVlZCBiYWNrIHRoZWlyIHRob3VnaHRzIG9uIHRoZSBwbGFucyBhbmQgaG93IHRoZSBodWIgY291bGQgc3VwcG9ydCB0aGVtOyBhbmQgdGhleSB3ZXJlIGFibGUgdG8gbmV0d29yayB0b2dldGhlciBhcyBwYXJ0IG9mIHRoZSBzZWN0b3IgZGV2ZWxvcG1lbnQgd29yayB0aGF0IGNvbXBsZW1lbnRzIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBodWIuXFxuXFxuU28gZmFyIDggYnVzaW5lc3NlcyBoYXZlIGJlZW4gc3VwcG9ydGVkIHRvIHN1Ym1pdCBFT0lzIHRvIHRoZSBCdXNpbmVzc2VzIEZpbmFuY2UgcHJvZ3JhbW1lLlxcblxcblRoZSB0d28gTEVBREVSIExvY2FsIEFjdGlvbiBHcm91cHMgaGF2ZSBhcHByb3ZlZCA2IHByb2plY3Qgc3VibWlzc2lvbnMgZnJvbSBidXNpbmVzc2VzLiBUaGUgdG90YWwgZ3JhbnQgY29tbWl0dGVkIHRvIGRhdGUgaXMgwqMxODgsNzUwLlxcblxcblRoZSBuZXh0IHVwZGF0ZSBpcyBkdWUgaW4gT2N0b2JlciBmb3IgdGhlIHF1YXJ0ZXIgdG8gU3BldGVtYmVyIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNSoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIGNvbW1lbnRhcnkgcmVwb3J0cyBvbiBFY29ub21pYyBEZXZlbG9wbWVudCBpbml0aWF0aXZlcyBhbmQgYWN0aXZpdGllcyB0aGF0IHN1cHBvcnQgYnVzaW5lc3Nlcy5cXG5cXG4qKkJldHRlciBCb2dub3IgUmVnaXMgQm9sZCBJZGVhIChEaWdpdGFsIGFuZCBjcmVhdGl2ZSBjbHVzdGVyKSoqXFxuXFxuVGhpcyBwcm9qZWN0IGlzIG9uZSBvZiB0aGUgZml2ZSAnQm9sZCBJZGVhcycgZGV2ZWxvcGVkIHRvIGhlbHAgdGFja2xlIFdlc3QgU3Vzc2V44oCZcyBlY29ub21pYyBjaGFsbGVuZ2VzIGFuZCBlbmNvdXJhZ2UgZWNvbm9taWMgYWN0aXZpdHkgb3ZlciB0aGUgc2hvcnQgdG8gbWVkaXVtIHRlcm0uIERyYXdpbmcgb24gZXhhbXBsZXMgZnJvbSBvdGhlciBwbGFjZXMgaW4gdGhlIFVLIGFuZCBpbnRlcm5hdGlvbmFsbHksIHRoZSBjb3VudHkgd291bGQgbGlrZSB0byBlc3RhYmxpc2ggQm9nbm9yIFJlZ2lzIGFzIGFuIGFydGlzdGljL2NyZWF0aXZlIGNlbnRyZSwgYSBwbGFjZSB3aGVyZSB5b3VuZyBjcmVhdGl2ZSBwZW9wbGUgZnJvbSB0aGUgbG9jYWwgYXJlYSB0aHJpdmUsIGFuZCBhdHRyYWN0cyBvdGhlcnMgZnJvbSBzdXJyb3VuZGluZyBhcmVhcyBpbmNsdWRpbmcgTG9uZG9uIHRvIHJlbG9jYXRlLiBUaGUgZm9jdXMgd2lsbCBiZSB0byBjcmVhdGUgYSBzaGFyZWQgd29ya3NwYWNlIGF0IEJvZ25vciBSZWdpcyByYWlsd2F5IHN0YXRpb24gd2hlcmUgc21hbGwgYnVzaW5lc3NlcyBjYW4gd29yayBpbiBhIGNyZWF0aXZlIGFuZCBzdXBwb3J0aXZlIGVudmlyb25tZW50LCBuZXR3b3JrLCBzb2NpYWxpc2UsIGRpc3BsYXkgd29yaywgc2hhcmUgZmFjaWxpdGllcyBldGMuIEl0IGlzIHRvIGJlIHVuZGVydGFraW5nIGluIHBhcnRuZXJzaGlwIHdpdGggb3RoZXJzIGluY2x1ZGluZyBDaGljaGVzdGVyIFVuaXZlcnNpdHksIGFuZCBpdCBpbnRlbmRlZCB0aGF0IHRoZSBuZXcgZmFjaWxpdGllcyB3b3VsZCBwcm92aWRlIGFuIGVudmlyb25tZW50IGZvciBncmFkdWF0ZXMgZnJvbSB0aGUgVW5pdmVyc2l0eSB0byBkZXZlbG9wIG5ldyBidXNpbmVzc2VzOyBhbmQgdGhlIFVuaXZlcnNpdHkgd291bGQgcHJvdmlkZSBhIHNvdXJjZSBvZiBza2lsbHMgZm9yIHRoaXMgZ3Jvd2luZyBzZWN0b3IgaW4gQm9nbm9yIFJlZ2lzIGFuZCBXZXN0IFN1c3NleC5cXG5cXG5UaGUgZmlyc3QgYnVzaW5lc3MgZXZlbnQgYXJvdW5kIHRoaXMgcHJvcG9zaXRpb24gd2FzIGhlbGQgaW4gTm92ZW1iZXIgMjAxNSBpbiBCb2dub3IgUmVnaXMuIFRoZSBhaW0gb2YgdGhlIGV2ZW50IHdhcyB0byBzaGFyZSB0aGUgZW1lcmdpbmcgcGxhbnMgZm9yIGEgZGlnaXRhbCBhbmQgY3JlYXRpdmUgaHViIHdpdGggcGFydG5lcnMsIHBvdGVudGlhbCBzdGFrZWhvbGRlcnMgYW5kIGEgc21hbGwgbnVtYmVyIG9mIGxvY2FsIGNyZWF0aXZlIGFuZCBkaWdpdGFsIGJ1c2luZXNzZXMsIHRvIGludml0ZSBmZWVkYmFjaywgdG8gZXhhbWluZSB0aGUgcG90ZW50aWFsIHNwYWNlIGZvciB0aGUgaHViIGF0IEJvZ25vciBSZWdpcyBSYWlsd2F5IFN0YXRpb24gYW5kIHRvIGV4YW1pbmUgaG93IHRoZSBpZGVhIHNob3VsZCBiZSBwcm9ncmVzc2VkLlxcblxcbjggYnVzaW5lc3NlcyBhdHRlbmRlZCB0aGlzIGV2ZW50LiBUaGUgbmV4dCBldmVudCBpcyBiZWluZyBvcmdhbmlzZWQgaW4gSmFudWFyeSB3aGljaCB3aWxsIGluY2x1ZGUgYSBiaWdnZXIgYXR0ZW5kYW5jZSBmcm9tIGJ1c2luZXNzZXMsIGFuZCB3aWxsIGJlIGZlZWRiYWNrIGluIHRoZSBuZXh0IHF1YXJ0ZXIuXFxuXFxuKipCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMqKlxcblxcbkZvbGxvd2luZyBvbiBmcm9tIHRoZSBCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gdGhhdCB3YXMgbGF1bmNoZWQgaW4gU3VtbWVyIOKAmTE1IHRoZXJlIHdhcyBhIGZvbGxvdyB1cCBzdXJ2ZXkgb2YgYXJvdW5kIGEgdGhpcmQgb2YgdGhlIGJ1c2luZXNzZXMgdGhhdCB3ZXJlIGludm9sdmVkIHRvIGFzY2VydGFpbiB0aGUgYmVuZWZpdHMgdGhleSBoYWQgc2VlbiBhbmQgdG8gZ2V0IHRoZWlyIHZpZXcgb24gdGhlIHByb21vdGlvbiBvZiBXZXN0IFN1c3NleCBhcyBhIHZpc2l0b3IgZGVzdGluYXRpb24uIENlcnRhaW5seSB0aGUgZmVlZGJhY2sgZnJvbSB0aGVtIHdhcyB2ZXJ5IHBvc2l0aXZlLCBhbGwgb2YgdGhlbSByZXBvcnRlZCB0aGF0IHRoZXkgd2FudGVkIHRoZSBjYW1wYWlnbiB0byBjb250aW51ZSwgbWFueSBleHBlY3QgdGhlIHdhbGtpbmcvY3ljbGluZyBtYXJrZXQgdG8gaW5jcmVhc2UgZm9yIHRoZWlyIGJ1c2luZXNzIGFuZCBzb21lIGhhZCB1bmRlcnRha2VuIGltcHJvdmVtZW50cyB0byBtYWtlIHRoZW1zZWx2ZXMgbW9yZSBjeWNsaW5nL3dhbGtpbmcgZnJpZW5kbHkgaS5lLiBpbnRyb2R1Y3Rpb24gb2Ygc2VjdXJlIGN5Y2xlIHN0b3JhZ2UuXFxuXFxuR2l2ZW4gdGhlIHdpbnRlciBsdWxsIFdlc3QgU3Vzc2V4IFdlZWtlbmRzIGlzIGNvbmNlbnRyYXRpbmcgb24gcHJvbW90aW5nIGEgc2VyaWVzIG9mIHdhbGtzIGluIHRoZSBDb3VudHksIHRoaXMgaXMgaW4gcGFydG5lcnNoaXAgd2l0aCBpRm9vdHBhdGgsIGEgbmF0aW9uYWwgd2Vic2l0ZSBhbmQgYXBwIHRvIGVuY291cmFnZSBwZW9wbGUgdG8gZ2V0IG91dCBhbmQgZW5qb3kgd2Fsa3MgYWNyb3NzIHRoZSBVSy4gVGhlcmUgYXJlIDEwIHdhbGtzIGluY2x1ZGVkIGluIFdlc3QgU3Vzc2V4LCBkZXRhaWxlZCBtYXBzIGFuZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSB3YWxrIGlzIGluY2x1ZGVkIGFuZCBsb2NhbCBidXNpbmVzc2VzIHRoYXQgYSB3YWxrZXIgY291bGQgc3RvcCBvZmYgYXQgZm9yIHJlZnJlc2htZW50IGFyZSBtZW50aW9uZWQuXFxuXFxuW2h0dHA6Ly93d3cud2VzdC1zdXNzZXgtd2Vla2VuZHMuY29tL3dpbnRlci13YWxrc11bMF1cXG5cXG5UaGVyZSBhcmUgbm93IGFyb3VuZCA3MCBsb2NhbCBidXNpbmVzc2VzIG9uIHRoZSBXZXN0IFN1c3NleCBXZWVrZW5kcyB3ZWJzaXRlLCBwcm9tb3RpbmcgdGhlbSBhcyBwbGFjZXMgdG8gc3RvcCBvZmYgYW5kL29yIHN0YXkgZm9yIHZpc2l0b3JzIHRvIFdlc3QgU3Vzc2V4LCB0aGlzIGlzIDEwIG1vcmUgdGhhbiBwcmV2aW91c2x5IHJlcG9ydGVkIGFuZCB0aGVuIGFyZSBwbGFucyB0byByZWNydWl0IGV2ZW4gbW9yZSBsb2NhbCBidXNpbmVzc2VzIHRvIG91ciBjYW1wYWlnbiBhbmQgaGVscCB0byBzdXBwb3J0IHRoZW0gdG8gYmVjb21lIGV2ZW4gbW9yZSBhdHRyYWN0aXZlIHRvIHZpc2l0b3JzIHRvIFdlc3QgU3Vzc2V4IHRocm91Z2ggb3VyIDIwMTYgY2FtcGFpZ24uXFxuXFxuKipIZWFsdGggJiBMaWZlIFNjaWVuY2VzKipcXG5cXG5UaGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIgaGFzIG5vdyBpZGVudGlmaWVkIG92ZXIgOTAgY29tcGFuaWVzIGFuZCB3b3JrIGhhcyBiZWVuIHVuZGVydGFrZW4gYW5kIGlzIG9uLWdvaW5nIHRvIGVuZ2FnZSB0aGUgbmV3IGNvbXBhbmllcyB0byB0aGUgd29yayB0byBkYXRlLiBBbiB1cGRhdGVkIGNsdXN0ZXIgZGlyZWN0b3J5IGlzIHNob3J0bHkgdG8gYmUgcmVsZWFzZWQgdG8gaW5jbHVkZSBhbGwgOTAgY29tcGFuaWVzIChpbmNyZWFzZSBvZiBhcm91bmQgMjYgZnJvbSB0aGUgcHJldmlvdXMgdmVyc2lvbikuIFRoZSBjbHVzdGVyIGhhcyBhbiBvbi1saW5lIHByZXNlbmNlIGluIHRoZSBmb3JtIG9mIGEgd2Vic2l0ZSwgdHdpdHRlciBhbmQgbGlua2VkLWluIGdyb3VwLCBpbiBhZGRpdGlvbiB0byB0aGUgOTAgY29tcGFuaWVzIHRoZXJlIGFyZSBvdmVyIDMwMCBpbmRpdmlkdWFscyBmcm9tIHByaXZhdGUgYnVzaW5lc3MsIGV4dGVybmFsIHNlY3RvciBvcmdhbmlzYXRpb25zLCBhY2FkZW1pY3MsIGxvY2FsIGdvdmVybm1lbnQgYW5kIHRoZSBOSFMuIFdTQ0MgYXJlIGRldmVsb3Bpbmcgc29tZSBpbml0aWF0aXZlcyAoY29sbGVjdGl2ZWx5IGtub3duIGFzIHRoZSBHcm93dGggSHViKSB0byBzdXBwb3J0IHN0YXJ0LXVwcyBhbmQgU01FcyBpbiB0aGlzIGNsdXN0ZXIgdGhyb3VnaG91dCB0aGUgY291bnR5LiBTcGVjaWZpYyBpbml0aWF0aXZlcyBpbmNsdWRlIHBvdGVudGlhbGx5IGNyZWF0aW5nIGEgTWVkIFRlY2ggQWNjZWxlcmF0b3IgaW4gdGhlIGNvdW50eSB3aGljaCB3b3VsZCBwcm92aWRlIGFuIGludGVuc2l2ZSBidXNpbmVzcyBzdXBwb3J0IHByb2dyYW1tZSBmb3Igc21hbGwgZ3JvdXBzIG9mIHN0YXJ0LSB1cHM7IGFuZCBkZXZlbG9wbWVudCBvZiBwcmFjdGljYWwgbWVhc3VyZXMgZS5nLiByb3VuZC10YWJsZSBkaXNjdXNzaW9ucyBhbmQgaW1wcm92ZWQgc2lnbiBwb3N0aW5nIHRvIGhlbHAgYWxsZXZpYXRlIHNvbWUgb2YgdGhlIHJlZ3VsYXRvcnkgY2hhbGxlbmdlcyB0aGF0IHRoZSBjb21wYW5pZXMgZmFjZS5cXG5cXG5baHR0cDovL3d3dy5idXNpbmVzc3dlc3RzdXNzZXguY28udWsvMjUyLXdzaGxzYy5odG1sXVsxXVxcblxcbkluIGFkZGl0aW9uIHRoZXJlIGlzIHdvcmsgYmVpbmcgdW5kZXJ0YWtlbiB0byBhZGRyZXNzIHRoZSBza2lsbHMgZ2FwcyBpbiB0aGlzIGFyZWEgYW5kIGJ1c2luZXNzZXMgaW4gdGhlIGNsdXN0ZXIgaGF2ZSBiZWVuIGludml0ZWQgdG8gcGFydGljaXBhdGUgaW4gQ29hc3RhbCBTVEVNIGZlc3QgMjAxNiwgYW5kIGEgbnVtYmVyIG9mIGJ1c2luZXNzZXMgYXR0ZW5kZWQgdGhlIHByZWxpbWluYXJ5IG1lZXRpbmcgaW4gTm92ZW1iZXIgdG8gcGxhbiBmb3IgdGhpcy5cXG5cXG5Db21wYW5pZXMgaW4gdGhpcyBzZWN0b3IgaGF2ZSByZXBvcnRlZCB0aGF0IHRoZXkgZG8gbm90IGhhdmUgbGlua3Mgd2l0aCBsb2NhbCB1bml2ZXJzaXRpZXMsIGFuZCBpbmRlZWQgdGhhdCB1bml2ZXJzaXRpZXMgd2VyZSDigJhpbnZpc2libGXigJkgdG8gdGhlbS4gSW4gcmVzcG9uc2UgdG8gdGhpcyB0aGVyZSB3b3JrIGlzIHVuZGVyd2F5IHRvIGltcHJvdmUgdGhlIGxpbmsgYmV0d2VlbiBjb21wYW5pZXMgaW4gdGhlIGhlYWx0aCBhbmQgbGlmZSBzY2llbmNlcyBjbHVzdGVyIGFuZCBsb2NhbCB1bml2ZXJzaXRpZXM7IGluIHBhcnRpY3VsYXIgYSDigJhVbml2ZXJzaXR5IG9mIFN1c3NleCBPZmZlcuKAmSBpcyBiZWluZyBkZXZlbG9wZWQgd2hpY2ggd2lsbCBoaWdobGlnaHQgYWxsIG9mIHRoZSBvcHBvcnR1bml0aWVzIGZvciBidXNpbmVzc2VzIGluIHRoZSBoZWFsdGggYW5kIGxpZmUgc2NpZW5jZXMgY2x1c3RlciB0byBjb2xsYWJvcmF0ZSB3aXRoIFN1c3NleCBVbml2ZXJzaXR5LiBFdmVudHMgYXJlIGJlaW5nIHBsYW5uZWQgZm9yIE1hcmNoIHdoaWNoIHdpbGwgZ2l2ZSBhbiBvcHBvcnR1bml0eSBmb3IgbG9jYWwgY29tcGFuaWVzIHRvIHZpc2l0IFN1c3NleCBVbml2ZXJzaXR5LCB0byBsb29rIGF0IHRoZSBmYWNpbGl0aWVzIG9uIG9mZmVyIGFuZCB0byBlbmdhZ2Ugd2l0aCBhIHJhbmdlIG9mIGFjYWRlbWljcyBmcm9tIGFjcm9zcyB0aGUgdW5pdmVyc2l0eS4gVGhlIGludGVudGlvbiBmb2xsb3dpbmcgdGhpcyBpcyB0byBjcmVhdGUgYSBzaW1pbGFyIG9mZmVyIHdpdGggb3RoZXIgbG9jYWwgdW5pdmVyc2l0aWVzLlxcblxcbioqTEVBREVSKipcXG5cXG5UaGUgTEVBREVSIHByb2dyYW1tZSB3YXMgbGF1bmNoZWQgaW4gTm92ZW1iZXIgMjAxNTsgaXQgaXMgYSBncmFudCBmdW5kaW5nIHByb2dyYW1tZSB0aGF0IHN1cHBvcnRzIHRoZSBncm93dGggYW5kIGRldmVsb3BtZW50IG9mIHJ1cmFsIGJ1c2luZXNzIGFuZCBpcyBwYXJ0IG9mIHRoZSBSdXJhbCBEZXZlbG9wbWVudCBwcm9ncmFtbWUgZm9yIEVuZ2xhbmQgd2hpY2ggYWltcyB0byBpbXByb3ZlIHRoZSBjb21wZXRpdGl2ZW5lc3Mgb2YgZmFybWluZyBhbmQgZm9yZXN0cnksIHN1cHBvcnQgYSBkaXZlcnNlIGFuZCBzdWNjZXNzZnVsIHJ1cmFsIGVjb25vbXkgYW5kIGhlbHAgdG8gZGV2ZWxvcCB2aWJyYW50IGFuZCB0aHJpdmluZyBydXJhbCBjb21tdW5pdGllcy4gU28gZmFyIHdlIGhhdmUgcmVjZWl2ZWQgMzcgZW5xdWlyaWVzIGZyb20gYnVzaW5lc3NlcyBpbiByZWxhdGlvbiB0byBMRUFERVIgZnVuZGluZyBzaW5jZSBpdCBoYXMgYmVlbiBsYXVuY2hlZC5cXG5cXG5baHR0cDovL3d3dy5idXNpbmVzc3dlc3RzdXNzZXguY28udWsvMjYwLWxlYWRlci1ncmFudHMtMjAxNS0yMC5odG1sXVsyXVxcblxcblswXTogaHR0cDovL3d3dy53ZXN0LXN1c3NleC13ZWVrZW5kcy5jb20vd2ludGVyLXdhbGtzXFxuWzFdOiBodHRwOi8vd3d3LmJ1c2luZXNzd2VzdHN1c3NleC5jby51ay8yNTItd3NobHNjLmh0bWxcXG5bMl06IGh0dHA6Ly93d3cuYnVzaW5lc3N3ZXN0c3Vzc2V4LmNvLnVrLzI2MC1sZWFkZXItZ3JhbnRzLTIwMTUtMjAuaHRtbFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE1KipcXG5cXG4tIC0gLVxcblxcblRoZSBCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gd2FzIGxhdW5jaGVkIGluIEp1bmUgdG8gYW4gYXVkaWVuY2Ugb2YgYXJvdW5kIDEwMCBhdHRlbmRlZXMsIG1hbnkgZnJvbSBsb2NhbCBidXNpbmVzc2VzLiBBIHdlYnNpdGUgaGFzIGJlZW4gZGV2ZWxvcGVkIHRvIHNob3djYXNlIHRob3NlIGJ1c2luZXNzZXMgKGFjY29tbW9kYXRpb24gcHJvdmlkZXJzIGFuZCBmb29kL2RyaW5rIHByb3ZpZGVycykgaW4gV2VzdCBTdXNzZXggdGhhdCBhcmUgd2VsY29taW5nIHRvIGN5Y2xpc3RzIGFuZCB3YWxrZXJzLCBhcyB3ZWxsIGFzIHRob3NlIHByb3ZpZGluZyBzZXJ2aWNlcyB0byBjeWNsaXN0cyBhbmQgd2Fsa2Vycy4gVG8gdGhpcyBlZmZlY3QsIHdlIGhhdmUgNjAgYnVzaW5lc3NlcyBmZWF0dXJlZCBvbiB0aGUgd2Vic2l0ZSBhbmQgaGF2ZSBvbi1nb2luZyBlbmdhZ2VtZW50IHdpdGggdGhlc2UgYnVzaW5lc3NlcyBpbmNsdWRpbmcgb2ZmZXJpbmcgZWxpZ2libGUgYnVzaW5lc3NlcyBmcmVlIGN5Y2xlIHN0YW5kcyB0byBlbnN1cmUgdGhlaXIgYnVzaW5lc3MgaXMgd2VsY29taW5nIHRvIGN5Y2xpc3RzIGFuZCB3YWxrZXJzLlxcblxcblRoZSBXZXN0IFN1c3NleCBXZWVrZW5kcyBsb2NhbCBjYW1wYWlnbiBoYXMgc2VlbiAxMSBsb2NhbCBidXNpbmVzc2VzIGRvbmF0ZSBwcml6ZXMgdG8gb3VyIGNvbXBldGl0aW9uLCB0aGVzZSBoYXZlIHRoZXJlZm9yZSBiZW5lZml0dGVkIGZyb20gcHJlc3MgYW5kIHByb21vdGlvbiB0aHJvdWdoIGNvcnBvcmF0ZSBjaGFubmVscyBhbmQgV2VzdCBTdXNzZXggd2Vla2VuZHMgcHJvbW90aW9uLlxcblxcbkF0IHRoZSBlbmQgb2YgdGhlIGNhbXBhaWduIGluIE9jdG9iZXIgd2Ugd2lsbCBiZSB1bmRlcnRha2luZyBhIGZvbGxvdyB1cCBzdXJ2ZXkgd2l0aCB0aGUgYnVzaW5lc3NlcyBmZWF0dXJlZCBpbiB0aGUgY2FtcGFpZ24gdG8gYXNjZXJ0YWluIHdoYXQgYmVuZWZpdCB0aGV5IGhhdmUgc2VlbiB0aHJvdWdoIHRoZSBjYW1wYWlnbiBhbmQgcHJvbW90aW9uIG9mIFdlc3QgU3Vzc2V4IGFzIGEgdmlzaXRvciBkZXN0aW5hdGlvbi4gVGhlaXIgcmVzcG9uc2VzIHdpbGwgaGVscCB1cyBzaGFwZSBvdXIgZm9jdXMgZm9yIHN1YnNlcXVlbnQgY2FtcGFpZ25zLlxcblxcbldTQ0MgaG9zdGVkIHRoZSBmaXJzdCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgQ2x1c3RlciBldmVudCB3aGljaCBzYXcgb3ZlciA5MCBwZW9wbGUgZnJvbSBsb2NhbCBidXNpbmVzc2VzIGF0dGVuZCBhbmQgaGVhciBhYm91dCB0aGUgc3VwcG9ydCB0aGF0IFdTQ0MgY2FuIG9mZmVyIGFuZCBmdXR1cmUgaW52ZXN0bWVudCBwbGFucyB0aGUgY291bnR5IGNvdW5jaWwgaXMgYWltaW5nIHRvIGRldmVsb3AgZm9yIHRoZSBjbHVzdGVyIGl0c2VsZi4gVGhpcyB3YXMgZm9sbG93ZWQgdXAgd2l0aCBwdWxsaW5nIHRvZ2V0aGVyIGEgZGlyZWN0b3J5IG9mIGFsbCB0aGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIgYnVzaW5lc3NlcyBpbiBXZXN0IFN1c3NleCAoaW5jbHVkaW5nIGJ1c2luZXNzZXMgYW5kIGluZHVzdHJ5IHN1cHBvcnQgc2VydmljZXMpLiBJdCBmZWF0dXJlcyA2NCBidXNpbmVzc2VzIHRvIGRhdGUuIFRoZSBDb3VudHkgQ291bmNpbCBpcyBjb21taXR0ZWQgdG8gZGV2ZWxvcGluZyBhIHN0cm9uZyBjbHVzdGVyIHdpdGggdGhlc2UgYnVzaW5lc3NlcyBhbmQgYXJlIGRldmVsb3BpbmcgcGxhbnMgdG8gZW5nYWdlIHdpdGggdGhlbSBmdXJ0aGVyIHRvIHN1cHBvcnQgdGhlaXIgbmVlZHMgYW5kIGdyb3d0aCBwcmlvcml0aWVzLCBhcyB3ZWxsIGFzIG9mZmVyaW5nIHNwZWNpZmljIG9wcG9ydHVuaXRpZXMgZm9yIHN1cHBvcnQgYW5kIGFkdmljZSB0YWlsb3JlZCB0byB0aGUgc2VjdG9yLiBBcyBwYXJ0IG9mIHRoaXMgZGV0YWlsZWQgY29udmVyc2F0aW9ucy9tZWV0aW5ncyBoYXZlIHRha2VuIHBsYWNlIGFjcm9zcyB0aGUgbGFzdCBmZXcgbW9udGhzIHdpdGggYSBudW1iZXIgb2YgdGhlc2UgbG9jYWwgYnVzaW5lc3NlcyB3aGljaCBoYXMgaGVscGVkIHRvIHNoYXBlIHRoZSB0aGlua2luZyBhYm91dCBkZXZlbG9waW5nIHRoZSBzZWN0b3IgZnVydGhlci5cXG5cXG42OSBvcmdhbmlzYXRpb25zIGFwcGxpZWQgZm9yIGJ1c2luZXNzIGdyYW50IGZ1bmRpbmcsIHdpdGggMjMgYmVpbmcgc2hvcnRsaXN0ZWQgZm9yIHRoZSBwYW5lbCwgYW5kIDEzIHN1Y2Nlc3NmdWxseSBzZWxlY3RlZC4gRmVlZGJhY2sgYW5kIGFkdmljZSB3YXMgb2ZmZXJlZCB0byB0aG9zZSB1bnN1Y2Nlc3NmdWwgb3JnYW5pc2F0aW9ucyBhbmQgMjcgdG9vayB0aGlzIHVwLiA4IGZ1cnRoZXIgcHJvamVjdHMgaGF2ZSBiZWVuIGFwcHJvdmVkIGZvciB0aGUgZ3Jvd3RoIGdyYW50cyBhcyBwYXJ0IG9mIHRoZSBCdXNpbmVzcyBGaW5hbmNlIFByb2dyYW1tZSwgZnVuZGVkIGJ5IHRoZSBMb2NhbCBHcm93dGggRnVuZC5cXG5cXG5UaGUgR2F0d2ljayBEaWFtb25kIE1lZXQgdGhlIEJ1eWVyIGV2ZW50IHdhcyBoZWxkIGluIEp1bHkgYXQgdGhlIEFyb3JhIEhvdGVsLCBDcmF3bGV5LCBnaXZpbmcgc21hbGwgYW5kIG1lZGl1bSBzaXplZCBlbnRlcnByaXNlcyB0aGUgb3Bwb3J0dW5pdHkgdG8gbWVldCBidXllcnMgZnJvbSBsb2NhbCwgbGFyZ2UgcHVibGljIGFuZCBwcml2YXRlIG9yZ2FuaXNhdGlvbnMuIFRocmVlIGludHJvZHVjdG9yeSB3b3Jrc2hvcHMgd2VyZSBoZWxkIGEgcm91bmQgcHJvY3VyZW1lbnQgaXNzdWVzIHdoaWNoIHdlcmUgYXR0ZW5kZWQgYnkgNTcgV2VzdCBTdXNzZXggYmFzZWQgYnVzaW5lc3Nlcy4gVGhlIGV2ZW50IG9yZ2FuaXNlcnMgd2lsbCBiZSByZXBvcnRpbmcgb24gdGhlIGxldmVsIG9mIGJ1c2luZXNzIHVuZGVydGFrZW4gYXQgdGhlIGV2ZW50IOKAkyB0aGlzIHdpbGwgYmUgYXZhaWxhYmxlIGxhdGVyIGluIFNlcHRlbWJlci5cXG5cXG5QcmVwYXJhdGlvbiBpcyBjb250aW51aW5nIGZvciB0aGUgbGF1bmNoIG9mIHRoZSBMRUFERVIgcHJvZ3JhbW1lIHdoaWNoIGhhcyBiZWVuIGF3YXJkZWQgZnVuZGluZyB0byBzdXBwb3J0IHRoZSBydXJhbCBlY29ub215IOKAkyBpdCBpcyBhbnRpY2lwYXRlZCB0aGF0IExFQURFUiB3aWxsIG9wZW4gZm9yIGFwcGxpY2F0aW9ucyBpbiBPY3RvYmVyLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJMRUFERVIgZ3JhbnRzIGNhbiBiZSB1c2VkIGZvciBwcm9qZWN0cyB0aGF0IHdpbGwgc3VwcG9ydDpcXG5cXG4qIGluY3JlYXNpbmcgZmFybSBwcm9kdWN0aXZpdHlcXG5cXG4qIHNtYWxsIGJ1c2luZXNzIGdyb3d0aCBhbmQgZmFybSBkaXZlcnNpZmljYXRpb25cXG5cXG4qIHJ1cmFsIHRvdXJpc21cXG5cXG4qIHJ1cmFsIHNlcnZpY2VzXFxuXFxuKiBjdWx0dXJhbCBhbmQgaGVyaXRhZ2UgYWN0aXZpdHlcXG5cXG4qIGluY3JlYXNpbmcgZm9yZXN0cnkgcHJvZHVjdGl2aXR5XFxuXFxuRm9yIG1vcmUgZGV0YWlscyBzZWU6XFxuXFxuW2h0dHBzOi8vd3d3Lndlc3RzdXNzZXguZ292LnVrL2J1c2luZXNzLWFuZC1jb25zdW1lcnMvc3RhcnQtb3ItZ3Jvdy15b3VyLWJ1c2luZXNzL3J1cmFsLWRldmVsb3BtZW50LXByb2dyYW1tZS1sZWFkZXItZnVuZGluZy9dWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy53ZXN0c3Vzc2V4Lmdvdi51ay9idXNpbmVzcy1hbmQtY29uc3VtZXJzL3N0YXJ0LW9yLWdyb3cteW91ci1idXNpbmVzcy9ydXJhbC1kZXZlbG9wbWVudC1wcm9ncmFtbWUtbGVhZGVyLWZ1bmRpbmcvXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJTdXBwb3J0aW5nIGJ1c2luZXNzZXMgYWNyb3NzIFdlc3QgU3Vzc2V4IHdpdGggV1NDQy1sZWQgYW5kIGJ1c2luZXNzIHN1cHBvcnQgaW5pdGlhdGl2ZXMuICBcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJBaW0gdG8gc3VwcG9ydCBhdCBsZWFzdCAzMDAgYnVzaW5lc3NlcywgdGhyb3VnaCBhIHJhbmdlIG9mIG5ldHdvcmtpbmcgaW5pdGlhdGl2ZXNcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNy0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJidXNpbmVzc2VzIHBlciB5ZWFyIiwidGFyZ2V0IjozMDAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiNHMzdi13aXloIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTd9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH19LFwic3RhcnRcIjpcIjIwMTQtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTQtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJUaGUgbnVtYmVyIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MgbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlc1wiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjp0cnVlfX0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMDg6NDU6MDEuNDIzWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjU4OjQ2LjE2N1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQwODo0NTowMS40MjNaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MzAsImlkIjoiNWY5cy1hcndzIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTE4VDE1OjAyOjE2LjI2MFoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDo1ODo0Ni4zNTVaIiwidmVyc2lvbiI6IjIwMTgtMDQtMThUMTU6MDI6MTYuMjYwWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiNjNzMi02bnU4IiwibmFtZSI6IjE2LTE3eXJzIGluIEVkdWNhdGlvbiwgRW1wbG95bWVudCBvciBUcmFpbmluZyAiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcInRleHRcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKk1hcmNoIDIwMTgqKlxcblxcbi0gLSAtXFxuXFxuVGhlIGxhdGVzdCBmaWd1cmVzIHdlIGhhdmUgd2VyZSB0aG9zZSBmb3IgdGhlIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgSmFudWFyeSAyMDE4LCB3aGljaCBzaG93ZWQgdGhlIGZvbGxvd2luZzotXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzhDRTQwMjhELTU4QkMtNEYzRi04RjcxLTJFRDZGMzc5QkYwRVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkphbnVhcnkgMjAxOCoqXFxuXFxuLSAtIC1cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQzU2OERBMUQtQUJCQS00OTIxLTgxODYtMzM4NzgxMTlDOEE0XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgQXV0aG9yaXR5IGlzIGN1cnJlbnRseSBzdGlsbCBpbiB0aGUgbWlkZGxlIG9mIHRoZSB5ZWFybHkgQW5udWFsIEFjdGl2aXR5IFN1cnZleSB0byBjb25maXJtIHRoZSBhY3R1YWwgZGVzdGluYXRpb25zIG9mIGFsbCB5b3VuZyBwZW9wbGUgb2YgYWNhZGVtaWMgYWdlIDE2IGFuZCAxNy4gVGhpcyB3b3JrIHdpbGwgY29udGludWUgYmV0d2VlbiBTZXB0ZW1iZXIgMjAxNyBhbmQgRmVicnVhcnkgMjAxOCBhbmQgdGhlcmVmb3JlIHRoZSBkYXRhIHdpbGwgbm90IGJlIHJvYnVzdCB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdHJhY2tpbmcgcGVyaW9kLiBUaGUgbGF0ZXN0IHBlcmZvcm1hbmNlIGRhdGEgYXZhaWxhYmxlIGZyb20gdGhlIERlcGFydG1lbnQgZm9yIEVkdWNhdGlvbiAoRGZFKSBpcyBmb3IgdGhlIG1vbnRoIG9mIE5vdmVtYmVyIDIwMTcgYW5kIHRoaXMgaXMgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy85NkJFNkI0Qy1BNjZCLTQ5MzUtODJFRi1DRTdEQUQ4MzdERDFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiV2VzdCBTdXNzZXggaXMgY3VycmVudGx5IGluIHRoZSBmb3VydGggcXVpbnRpbGUgb2YgQXV0aG9yaXRpZXMgd2l0aGluIHRoZSBTb3V0aCBFYXN0IGZvciBpdHMgcGVyZm9ybWFuY2Ugb24gdGhlIHBlcmNlbnRhZ2Ugb2YgeW91bmcgcGVvcGxlIHdpdGggYW4g4oCYdW5rbm93buKAmWRlc3RpbmF0aW9uLiBIb3dldmVyLCBvbmUgY2FuIHNlZSBmcm9tIHRoZSB0YWJsZSBiZWxvdyB0aGF0IHRoZSBjdXJyZW50IHVua25vd24gZmlndXJlIGlzIG92ZXIgMSUgbG93ZXIgdGhhbiB0aGUgc2FtZSBtb250aCBsYXN0IHllYXIuIFdlc3QgU3Vzc2V4IGlzIG9uIGEgcGFyIHdpdGggdGhlIFNvdXRoIEVhc3QgYW5kIE5hdGlvbmFsIEF2ZXJhZ2UgaW4gdGVybXMgb2YgdGhlIHBlcmNlbnRhZ2Ugb2YgeW91bmcgcGVvcGxlIG1lZXRpbmcgdGhlaXIgRHV0eSB0byBQYXJ0aWNpcGF0ZSAoSW4gTGVhcm5pbmcpIGFuZCBhZ2FpbiwgdGhlcmUgaGFzIGJlZW4gYSBzbGlnaHQgaW1wcm92ZW1lbnQgb24gbGFzdCB5ZWFyc+KAmSBmaWd1cmVzIHNvIGZhciB0aGlzIHllYXIuIFlvdW5nIHBlb3BsZSB3aG8gYXJlIE5FRVQgcmVtYWluIGxvdywgYnV0dCBoaXMgbWF5IGluY3JlYXNlIG9uY2UgbW9yZSB5b3VuZyBwZW9wbGUgYmVjb21lIOKAmGtub3du4oCZIGFzIGNvbnRhY3QgY29udGludWVzIHRvIGJlIGF0dGVtcHRlZC5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzZDQTJDRjk3LURBMjktNDQ0OS05QzExLTdGRTczNDNFNzBDN1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJBdHRlbXB0cyB0byBjb250YWN0IG91ciByZW1haW5pbmcg4oCYdW5rbm93buKAmSB5b3VuZyBwZW9wbGUgY29udGludWUgdG8gYmUgbWFkZSB1c2luZyBhIG1peHR1cmUgb2YgdGhlIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIENvbnRhY3QgQ2VudHJlIHN0YWZmLCBJUEVIIEh1YiBzdGFmZixvbmdvaW5nIGNvbW11bmljYXRpb24gd2l0aCBzY2hvb2xzIGFuZCBwb3N0LTE2IHByb3ZpZGVycyBhbmQgbGlhaXNvbiB3aXRoIG5laWdoYm91cmluZyBhdXRob3JpdGllcyBhbmQgdXNpbmcgYW4gb24tbGluZSBzdXJ2ZXkgZm9yIHlvdW5nIHBlb3BsZSBhbmQgcGFyZW50cyB0byBhY2Nlc3MgZGlyZWN0LiBUaGUgbWFqb3JpdHkgb2Ygb3VyIHJlbWFpbmluZyDigJh1bmtub3du4oCZIHlvdW5nIHBlb3BsZSBhcmUgb2YgYWNhZGVtaWMgYWdlIDE3ICh5ZWFyIDEzKSBzbyB3b3JrIGlzIGN1cnJlbnRseSB1bmRlcndheSB0byBzcGVjaWZpY2FsbHkgdGFyZ2V0IGNvbnRhY3RpbmcgdGhpcyBjb2hvcnQuXFxuXFxuIFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBsYXRlc3QgZGF0YSBhdmFpbGFibGUgZnJvbSB0aGUgRGVwYXJ0bWVudCBmb3IgRWR1Y2F0aW9uIChERkUpIGlzIGZvciB0aGUgbW9udGggb2YgQXVndXN0IDIwMTcgYW5kIHRoaXMgaXMgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93LiBGcm9tIFNlcHRlbWJlciB0aGUgQXV0aG9yaXR5IHdpbGwgYmUgdW5kZXJ0YWtpbmcgdGhlIEFubnVhbCBBY3Rpdml0eSBTdXJ2ZXkgdG8gY29uZmlybSB0aGUgYWN0dWFsIGRlc3RpbmF0aW9ucyBvZiBhbGwgeW91bmcgcGVvcGxlIG9mIGFjYWRlbWljIGFnZSAxNiBhbmQgMTcuIFRoaXMgd29yayB3aWxsIGNvbnRpbnVlIGJldHdlZW4gU2VwdGVtYmVyIDIwMTcgYW5kIEZlYnJ1YXJ5IDIwMTggYW5kIHRoZXJlZm9yZSB0aGUgZGF0YSB3aWxsIG5vdCBiZSByb2J1c3QgdW50aWwgdGhlIGVuZCBvZiB0aGlzIHRyYWNraW5nIHBlcmlvZC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQTZCNEQ5NDMtQzZFMS00RUY3LTkyQkYtMDc5MEI2ODBDRDIzXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBEZkUgZG8gbm90IG1vbml0b3IgdGhlIHBlcmZvcm1hbmNlIG9mIEF1dGhvcml0aWVzIG92ZXIgdGhlIHN1bW1lciBtb250aHMgZHVlIHRvIHlvdW5nIHBlb3BsZSBmaW5pc2hpbmcgY291cnNlcyBlYXJseSAoaS5lLiBNYXkvSnVuZSkgYW5kIHRoZSBpbXBlbmRpbmcgQW5udWFsIEFjdGl2aXR5IFN1cnZleSB3aGljaCBzdGFydHMgaW4gU2VwdGVtYmVyLiBBcyBzdWNoLCBjb21wYXJpc29uIHdpdGggdGhlIHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBkYXRhIG5lZWRzIHRvIGJlIHRyZWF0ZWQgd2l0aCBzb21lIGNhdXRpb24gZm9yIEF1Z3VzdC4gVGhlIHBlcmNlbnRhZ2Ugb2YgeW91bmcgcGVvcGxlIOKAmEluIExlYXJuaW5n4oCZIGluIFdlc3QgU3Vzc2V4IGlzIGhpZ2hlciBmb3IgQXVndXN0IHRoYW4gdGhlIHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBmaWd1cmVzLiBUaG9zZSBpbiBFRVQgcmVtYWluIHNsaWdodGx5IGxvd2VyIGluIFdlc3QgU3Vzc2V4IGNvbXBhcmVkIHdpdGggdGhlIG5hdGlvbmFsIHBpY3R1cmUsIGFsdGhvdWdoIFdlc3QgU3Vzc2V4IGhhcyBhIGhpZ2hlciBwZXJjZW50YWdlIEVFVCB0aGFuIHRoZSByZWdpb24uIDE2IGFuZCAxNyB5ZWFyIG9sZHMgd2hvIGFyZSBORUVUIGFsc28gcmVtYWluIGxvd2VyIGluIFdlc3QgU3Vzc2V4LiBXaGlsZSB0aGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUgd2l0aCBhbiB1bmtub3duIEVFVCBzaXR1YXRpb24gcmVtYWlucyBoaWdoIGluIFdlc3QgU3Vzc2V4IGluIGNvbXBhcmlzb24gd2l0aCBvdGhlciBhcmVhcywgdGhlIGdhcCBoYXMgZmFsbGVuIGNvbnNpZGVyYWJseSBmb3IgQXVndXN0LiBIb3dldmVyLCB0aGlzIGlzIG1vc3QgbGlrZWx5IGR1ZSB0byBvdGhlciBhcmVhcyB3YWl0aW5nIHRvIHJlLWNvbmZpcm0gdGhlIGRlc3RpbmF0aW9ucyBvZiB0aGVpciBzY2hvb2wgbGVhdmVycyBhbmQgeWVhciAxMyB5b3VuZyBwZW9wbGUgZnJvbSBTZXB0ZW1iZXIgb253YXJkcy4gQWNvbXBhcmlzb24gb2YgdGhlIGN1cnJlbnQgQXVndXN0IGRhdGEgd2l0aCBBdWd1c3QgMjAxNiwgc2hvd3MgdGhhdCBpbXByb3ZlbWVudHMgaGF2ZSBiZWVuIG1hZGUgYWNyb3NzIHRoZSBib2FyZCB3aXRoIFVua25vd24gZmlndXJlcyAxLjIlIGxvd2VyIHRoaXMgeWVhcjsgSW4gTGVhcm5pbmcgZmlndXJlcyAxLjYlIGhpZ2hlcjsgTkVFVCBmaWd1cmVzIDAuMyUgbG93ZXIgYW5kIHRoZSBwZXJjZW50YWdlIG9mIHRob3NlIGluIGFueSBmb3JtIG9mIEVFVCBiZWluZyAxLjQlIGhpZ2hlci4gQWx0aG91Z2ggd2UgaGF2ZSBmb3VuZCBvdXQgdGhlIEVFVCBkZXRhaWxzIG9mIG1vcmUgeW91bmcgcGVvcGxlIHRoaXMgeWVhciwgb3VyIE5FRVQgZmlndXJlcyBoYXZlIHJlZHVjZWQsIHRoZXJlYnkgc3VnZ2VzdGluZyB0aGF0IG1hbnkgb2Ygb3VyIHVua25vd25zIG1heSB3ZWxsIGJlIHBhcnRpY2lwYXRpbmcgaW4gc29tZSBmb3JtIG9mIEVFVCBhcyBvcHBvc2VkIHRvIGJlaW5nIE5FRVQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzVDQ0VFRDQyLTYzMjctNDE2OC1BRDIwLTE4QTFDQTNGOTI3QVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJSZWR1Y2luZyBvdXIgVW5rbm93biBmaWd1cmUgYW5kIGluY3JlYXNpbmcgb3VyIGNvbmZpZGVuY2UgYXJvdW5kIG91ciBFRVQgZGF0YSBpcyBhIGtleSBPdXRjb21lIEluZGljYXRvciBmb3IgdGhlIG5ldyBJUEVIIHNlcnZpY2UuIFRoZSBuZXcgSVBFSCBzZXJ2aWNlIGludm9sdmVzIG11bHRpIGFnZW5jeSBkZWxpdmVyeSB0aHJvdWdoIGEgbG9jYWxpc2VkIEh1YiBzdHJ1Y3R1cmUuIFRoZXNlIEh1YnMgaGF2ZSBhIGNsZWFyIHJlbWl0IHRvIGRldmVsb3AgbGlua3Mgd2l0aGluIHRoZWlyIGNvbW11bml0aWVzIGFuZCB3aXRoIHBhcnRuZXJzIHRvIGltcHJvdmUgdGhlIG91dGNvbWVzIGZvciBjaGlsZHJlbiwgeW91bmcgcGVvcGxlIGFuZCBmYW1pbGllcywgaW5jbHVkaW5nIGRldmVsb3BpbmcgZnVydGhlciBsaW5rcyB3aXRoIGxvY2FsIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIHRvIGVuYWJsZSBhIG1vcmUgbG9jYWxpc2VkIHRyYWNraW5nIG9mIHRob3NlIHlvdW5nIHBlb3BsZSBhdCByaXNrIG9mIE5FRVQgYW5kIHRob3NlIHdob3NlIEVFVCBzaXR1YXRpb24gaXMgdW5rbm93bi4gSW5jbHVkZWQgaW4gdGhpcyB3aWxsIGJlIHBhcnRuZXJzaGlwIHdpdGggQ2FyZWVycyBBZHZpc2VycyB3aXRoaW4gRWR1Y2F0aW9uIGFuZCBTa2lsbHMgd2hvIHdpbGwgYmUgc2hpZnRpbmcgZm9jdXMgdG8gd29yayBtb3JlIHdpdGggTkVFVCB5b3VuZyBwZW9wbGUgaW4gdGhlIGZ1dHVyZS5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBsYXRlc3QgZGF0YSBhdmFpbGFibGUgZnJvbSB0aGUgRGVwYXJ0bWVudCBmb3IgRWR1Y2F0aW9uIChERkUpIGlzIGZvciB0aGUgbW9udGggb2YgTWF5IDIwMTcgYW5kIHRoaXMgaXMgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CRkM5QjUzRi1BNTM0LTRDNkItOUZCQi0wQjdBNkMxNEQ4NDlcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIHBlcmNlbnRhZ2Ugb2YgeW91bmcgcGVvcGxlIOKAmEluIExlYXJuaW5n4oCZIGFuZCBpbiBFRVQgcmVtYWlucyBzbGlnaHRseSBsb3dlciBpbiBXZXN0IFN1c3NleCBjb21wYXJlZCB3aXRoIHRoZSByZWdpb25hbCBhbmQgbmF0aW9uYWwgcGljdHVyZS4gMTYgYW5kIDE3IHllYXIgb2xkcyB3aG8gYXJlIE5FRVQgYWxzbyByZW1haW4gbG93ZXIuIEhvd2V2ZXIsIHRoZSBwZXJjZW50YWdlIG9mIHlvdW5nIHBlb3BsZSB3aXRoIGFuIHVua25vd24gRUVUIHNpdHVhdGlvbiByZW1haW5zIGhpZ2ggaW4gV2VzdCBTdXNzZXggaW4gY29tcGFyaXNvbiB3aXRoIHRoZSBmaWd1cmUgZm9yIHRoZSByZWdpb24gYW5kIG5hdGlvbmFsbHksIHdoaWNoIGhhcyB0aGUgaW1wYWN0IG9mIGRlY3JlYXNpbmcgb3VyIGNvbmZpZGVuY2UgaW4gb3VyIEluIExlYXJuaW5nLCBFRVQgYW5kIE5FRVQgZGF0YS4gVGhlIHRhYmxlIGJlbG93IHNob3dzIHBlcmZvcm1hbmNlIGZvciB0aGUgbGFzdCAzIG1vbnRocyBvZiBhdmFpbGFibGUgZGF0YSwgaW5jbHVkaW5nIHRoZSAzIG1vbnRoIGF2ZXJhZ2UuIFRoaXMgc2hvd3MgYSBmYWlybHkgc3RhdGljIHBpY3R1cmUgYWNyb3NzIHRoZSBib2FyZCwgYWx0aG91Z2ggb3VyIFVua25vd24gZmlndXJlcyBoYXZlIHJpc2VuIHNsaWdodGx5IHNpbmNlIE1hcmNoLiBIb3dldmVyLCBhIHJpc2UgaW4gdW5rbm93bnMgaXMgdG8gYmUgZXhwZWN0ZWQgYXMgdGhlIHllYXIgcHJvZ3Jlc3NlcywgZXNwZWNhaWxseSB0aHJvdWdob3V0IHRoZSBzdW1tZXIgcGVyaW9kLCBhcyB5b3VuZyBwZW9wbGUgc3RhcnQgdG8gZmluaXNoIGVkdWNhdGlvbiBhbmQgdHJhaW5pbmcgcGxhY2VtZW50cy4gRm9yIHRoaXMgcmVhc29uLCB0aGUgRGZFIGRvIG5vdCBtb25pdG9yIHRoZSBwZXJmb3JtYW5jZSBvZiBsb2NhbCBhdXRob3JpdGllcyBpbiB0ZXJtcyBvZiB0aGVpciB1bmtub3duIGNvaG9ydCBvdmVyIHRoZSBzdW1tZXIgbW9udGhzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9GMkEwNzBCNS03NTc0LTQwQUItQkQ3NC05MTFCQTI0MUNCMTNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQSBjb21wYXJpc29uIHdpdGggdGhlIGN1cnJlbnQgTWF5IGRhdGEgd2l0aCBNYXkgMjAxNiwgc2hvd3MgdGhhdCBpbXByb3ZlbWVudHMgaGF2ZSBiZWVuIG1hZGUgYWNyb3NzIHRoZSBib2FyZCB3aXRoIFVua25vd24gZmlndXJlcyAyLjIlIGxvd2VyIHRoaXMgeWVhciwgSW4gTGVhcm5pbmcgZmlndXJlcyAyLjUlIGhpZ2hlciwgTkVFVCBmaWd1cmVzIDAuMyUgbG93ZXIgYW5kIHRoZSBwZXJjZW50YWdlIG9mIHRob3NlIGluIGFueSBmb3JtIG9mIEVFVCBiZWluZyAyLjUlIGhpZ2hlci4gQWx0aG91Z2ggd2UgaGF2ZSBmb3VuZCBvdXQgdGhlIEVFVCBkZXRhaWxzIG9mIG1vcmUgeW91bmcgcGVvcGxlIHRoaXMgeWVhciwgb3VyIE5FRVQgZmlndXJlcyBoYXZlIHJlZHVjZWQsIHRoZXJlYnkgc3VnZ2VzdGluZyB0aGF0IG1hbnkgb2Ygb3VyIHVua25vd25zIG1heSB3ZWxsIGJlIHBhcnRpY2lwYXRpbmcgaW4gc29tZSBmb3JtIG9mIEVFVCBhcyBvcHBvc2VkIHRvIGJlaW5nIE5FRVQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0ZGRDE1ODZFLTFDQzctNDhCNy04N0NGLThGNUYxMTRCNzk2QVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJSZWR1Y2luZyBvdXIgVW5rbm93biBmaWd1cmUgYW5kIGluY3JlYXNpbmcgb3VyIGNvbmZpZGVuY2UgYXJvdW5kIG91ciBFRVQgZGF0YSBpcyBhIGtleSBPdXRjb21lIEluZGljYXRvciBmb3IgdGhlIG5ldyBJUEVIIHNlcnZpY2UuIFRoZSBuZXcgSVBFSCBzZXJ2aWNlIGludm9sdmVzIG11bHRpIGFnZW5jeSBkZWxpdmVyeSB0aHJvdWdoIGEgbG9jYWxpc2VkIEh1YiBzdHJ1Y3R1cmUuIFRoZXNlIEh1YnMgaGF2ZSBhIGNsZWFyIHJlbWl0IHRvIGRldmVsb3AgbGlua3Mgd2l0aGluIHRoZWlyIGNvbW11bml0aWVzIGFuZCB3aXRoIHBhcnRuZXJzIHRvIGltcHJvdmUgdGhlIG91dGNvbWVzIGZvciBjaGlsZHJlbiwgeW91bmcgcGVvcGxlIGFuZCBmYW1pbGllcywgaW5jbHVkaW5nIGRldmVsb3BpbmcgZnVydGhlciBsaW5rcyB3aXRoIGxvY2FsIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIHRvIGVuYWJsZSBhIG1vcmUgbG9jYWxpc2VkIHRyYWNraW5nIG9mIHRob3NlIHlvdW5nIHBlb3BsZSBhdCByaXNrIG9mIE5FRVQgYW5kIHRob3NlIHdob3NlIEVFVCBzaXR1YXRpb24gaXMgdW5rbm93bi4gSW5jbHVkZWQgaW4gdGhpcyB3aWxsIGJlIHBhcnRuZXJzaGlwIHdpdGggQ2FyZWVycyBBZHZpc2VycyB3aXRoaW4gRWR1Y2F0aW9uIGFuZCBTa2lsbHMgd2hvIHdpbGwgYmUgc2hpZnRpbmcgZm9jdXMgdG8gd29yayBtb3JlIHdpdGggTkVFVCB5b3VuZyBwZW9wbGUgaW4gdGhlIGZ1dHVyZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgZmlyc3QgZGF0YSB0YWJsZSBiZWxvdyBwcm92aWRlcyB0aGUgTm92ZW1iZXIgdG8gSmFudWFyeSBhdmVyYWdlIGZpZ3VyZXMuIEFsdGhvdWdoIGRhdGEgaXMgc3VibWl0dGVkIHRvIHRoZSBEZkUgb24gYSBtb250aGx5IGJhc2lzLCB0aGV5IHVzZSBhbmQgcHVibGlzaCB0aGUgTm92ZW1iZXIgdG8gSmFudWFyeSBhdmVyYWdlIGZpZ3VyZXMgdG8gbWVhc3VyZSB0aGUgcGVyZm9ybWFuY2Ugb2YgZWFjaCBBdXRob3JpdHkgZXZlcnkgeWVhci4gVGhlIEF1dHVtbiBwZXJpb2QgaXMgdGhlIHBlYWsgb2YgdHJhY2tpbmcgYWN0aXZpdHkgZHVlIHRvIHNlZWtpbmcgdG8gZGV0ZXJtaW5lIHRoZSBkZXN0aW5hdGlvbnMgb2YgYWxsIHRob3NlIHlvdW5nIHBlb3BsZSBzdGFydGluZyBhIG5ldyBhY2FkZW1pYyB5ZWFyLiBUaGUgTmF0aW9uYWwgYW5kIFNvdXRoIEVhc3QgcGVyZm9ybWFuY2UgaXMgcHJvdmlkZWQgZm9yIGNvbXBhcmlzb24gYW5kIHRoZSBjb21tZW50YXJ5IGJlbG93IGRlbW9uc3RyYXRlcyBob3cgdGhpcyB5ZWFy4oCZcyBwZXJmb3JtYW5jZSBjb21wYXJlcyB0byB0aGUgc2FtZSBhdmVyYWdlIGZvciAyMDE1LzE2LiBUaGUgc2Vjb25kIGRhdGEgdGFibGUgcHJvdmlkZXMgdGhlIG1vc3QgcmVjZW50IGRhdGEgcmVsZWFzZWQgdG8gdXMgZnJvbSB0aGUgRGZFLiBNYXJjaCBkYXRhIHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgdG8gdXMgbWlkLUFwcmlsIDIwMTcuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzUxMTk3RDlCLTU4NjctNDdBRC1COEZGLUE0NzcxNjgyQTczQlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDb21tZW50YXJ5IGluY2x1ZGluZyB1c2VmdWwgY29udGV4dHVhbCBpbmZvcm1hdGlvbjpcXG5cXG5Gcm9tIFNlcHRlbWJlciAyMDE2IExvY2FsIEF1dGhvcml0aWVzIGFyZSBvbmx5IHJlcXVpcmVkIHRvIHRyYWNrIGFuZCBzdWJtaXQgaW5mb3JtYXRpb24gYWJvdXQgeW91bmcgcGVvcGxlIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGFjYWRlbWljIHllYXIgaW4gd2hpY2ggdGhleSBoYXZlIHRoZWlyIDE4dGggYmlydGhkYXkgaS5lLiBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3LXllYXItb2xkcy4gTG9jYWwgQXV0aG9yaXRpZXMgbm8gbG9uZ2VyIGhhdmUgdG8gc3VibWl0IGRhdGEgZm9yIHRob3NlIGFib3ZlIHRoaXMgYWdlIHJhbmdlIHVubGVzcyB0aGUgeW91bmcgcGVyc29uIGhhcyBhIFNwZWNpYWwgRWR1Y2F0aW9uYWwgTmVlZCBvciBEaXNhYmlsaXR5IChTRU5EKSBhbmQgaGFzIGFuIEVkdWNhdGlvbiwgSGVhbHRoIGFuZCBDYXJlIFBsYW4gKEVIQ1ApLiBBcyBzdWNoLCBFZHVjYXRpb24sIFRyYWluaW5nIGFuZCBFbXBsb3ltZW50IGRhdGEgaXMgb25seSBjdXJyZW50bHkgYXZhaWxhYmxlIGFuZCBhY2N1cmF0ZSBvbiB0aG9zZSB5b3VuZyBwZW9wbGUgb2YgYWNhZGVtaWMgYWdlIDE2IGFuZCAxNy4gVGhpcyBjb2hvcnQgc2l6ZSBhdCB0aGUgZW5kIG9mIEphbnVhcnkgMjAxNyB3YXMgMTcsNTk4LCB0aGUgZm91cnRoIGxhcmdlc3QgaW4gdGhlIFNvdXRoIEVhc3QuXFxuXFxuSW4gU3VtbWFyeSwgYWx0aG91Z2ggdGhlIHBlcmNlbnRhZ2Ugb2YgeW91bmcgcGVvcGxlIHdpdGggYW4gdW5rbm93biBFRVQgc2l0dWF0aW9uIGluIFdlc3QgU3Vzc2V4IHJlbWFpbnMgaGlnaGVyIHRoYW4gdGhlIE5hdGlvbmFsIGFuZCBSZWdpb25hbCBmaWd1cmVzIGFuZCB0aGUgcGVyY2VudGFnZSBJbiBMZWFybmluZyByZW1haW5zIGxvd2VyLCBpbXByb3ZlbWVudHMgaGF2ZSBiZWVuIG1hZGUgdGhpcyB5ZWFyIHdpdGggb3ZlciBhIDIlcmVkdWN0aW9uIGluIHRoZSAzIG1vbnRoIGF2ZXJhZ2UgdW5rbm93biBwZXJjZW50YWdlIGFuZCBhIDMlIGluY3JlYXNlIGluIHRoZSAzIG1vbnRoIGF2ZXJhZ2Ugb2YgdGhvc2UgSW4gTGVhcm5pbmcuIExhdGVzdCBmaWd1cmVzIHNob3cgdGhhdCBvdmVyIDkwJSBvZiB5b3VuZyBwZW9wbGUgb2YgYWNhZGVtaWMgYWdlIDE2IGFuZCAxNyBhcmUgbWVldGluZyB0aGVpciBEdXR5IHRvIFBhcnRpY2lwYXRlLiBUaGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUgaW4gZWR1Y2F0aW9uLCB0cmFpbmluZyBvciBlbXBsb3ltZW50IGhhcyByaXNlbiBmcm9tIDg3LjclIGluIDIwMTUvMTYgdG8gOTAuMSUgdGhpcyB5ZWFyICgzLW1vbnRoIGF2ZXJhZ2UpLiBJbiBhZGRpdGlvbiB0byB0aGVzZSBpbXByb3ZlbWVudHMsIHRoZSBwZXJjZW50YWdlIG9mIE5FRVQgeW91bmcgcGVvcGxlIHJlbWFpbnMgbG93ZXIgdGhhbiB0aGUgbmF0aW9uYWwgYW5kIHJlZ2lvbmFsIGZpZ3VyZXMgYW5kIHdoZXJlYXMgdGhlIE5FRVQgMyBtb250aCBhdmVyYWdlIHBlcmNlbnRhZ2UgZm9yIHRoZSByZWdpb24gYW5kIG5hdGlvbmFsbHkgaGFzIHJlbWFpbmVkIHN0YXRpYywgV2VzdCBTdXNzZXggaGFzIHNlZW4gYSByZWR1Y3Rpb24gb2YgMC40JS5cXG5cXG5UaGlzIGltcHJvdmVtZW50IHRvIHBlcmZvcm1hbmNlIGhhcyBiZWVuIGFjaGlldmVkIHRocm91Z2ggYSBudW1iZXIgb2YgZGV2ZWxvcG1lbnRzIHRvIG91ciB0cmFja2luZyBhY3Rpdml0eSwgaW5jbHVkaW5nIGltcHJvdmluZyB0aGUgc3BlZWQgYXQgd2hpY2ggZGF0YSBpcyByZWNlaXZlZCBhbmQgdXBsb2FkZWQgZnJvbSBzY2hvb2xzIGFuZCBwb3N0LTE2IHByb3ZpZGVycywgbWFraW5nIHVzZSBvZiBTTVMgYW5kIG9uLWxpbmUgc3VydmV5cyBmb3IgcGFyZW50cyBhbmQgeW91bmcgcGVvcGxlIGFuZCBhZG9wdGluZyBhIG1vcmUgdGFyZ2V0ZWQgYXBwcm9hY2ggdG8gY29udGFjdGluZyBwYXJlbnRzIGFuZCB5b3VuZyBwZW9wbGUgdXNpbmcgdGhlIEZpbmQgaXQgT3V0IENlbnRyZXMgYW5kIENvbnRhY3QgQ2VudHJlLlxcblxcbkdvaW5nIGZvcndhcmQsZGV2ZWxvcG1lbnRzIHRvIHRoZSB3YXkgeW91bmcgcGVvcGxlIGFyZSB0cmFja2VkIGFyZSBzdGlsbCB1bmRlcndheSBpbmNsdWRpbmcgc3RyZW5ndGhlbmluZyBvdXIgU0VORCBkYXRhIGFuZCByZWZpbmluZyBvdXIgdHJhY2tpbmcgdGltZWxpbmUgdG8gbWFrZSByZWNlaXB0IGFuZCB1cGxvYWQgb2YgZGF0YSBldmVuIG1vcmUgZWZmaWNpZW50LiBGdXJ0aGVybW9yZSx0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBuZXcgSW50ZWdyYXRlZCBQcmV2ZW50aW9uIGFuZCBFYXJsaWVzdCBIZWxwIFNlcnZpY2UsaW52b2x2aW5nIG11bHRpIGFnZW5jeSBkZWxpdmVyeSB0aHJvdWdoIGxvY2FsaXNlZCBIdWIgc3RydWN0dXJlLCB3aWxsIGRldmVsb3AgZnVydGhlciB0aGUgbGlua3Mgd2l0aCBsb2NhbCBzY2hvb2xzIGFuZCBjb2xsZWdlcyBhbmQgZW5hYmxlIG1vcmUgbG9jYWxpc2VkIHRyYWNraW5nIG9mIHRob3NlIHlvdW5nIHBlb3BsZSBhdCByaXNrIG9mIE5FRVQgYW5kIHRob3NlIHdob3NlIEVFVCBzaXR1YXRpb24gaXMgdW5rbm93bi5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSB0byBEZWNlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcbkZyb20gU2VwdGVtYmVyIDIwMTYgTG9jYWwgQXV0aG9yaXRpZXMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gdHJhY2sgYW5kIHN1Ym1pdCBpbmZvcm1hdGlvbiBhYm91dCB5b3VuZyBwZW9wbGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgYWNhZGVtaWMgeWVhciBpbiB3aGljaCB0aGV5IGhhdmUgdGhlaXIgMTh0aCBiaXJ0aGRheSBpLmUuIGFjYWRlbWljIGFnZSAxNiBhbmQgMTcteWVhci1vbGRzLiBMb2NhbCBBdXRob3JpdGllcyBubyBsb25nZXIgaGF2ZSB0byBzdWJtaXQgZGF0YSBmb3IgdGhvc2UgYWJvdmUgdGhpcyBhY2FkZW1pYyBhZ2UgcmFuZ2UgdW5sZXNzIHRoZSB5b3VuZyBwZXJzb24gaGFzIGEgU3BlY2lhbCBFZHVjYXRpb25hbCBOZWVkIG9yIERpc2FiaWxpdHkgKFNFTkQpIGFuZCBoYXMgYW4gRWR1Y2F0aW9uLCBIZWFsdGggYW5kIENhcmUgUGxhbiAoRUhDUCkuIEFzIHN1Y2gsIEVkdWNhdGlvbiwgVHJhaW5pbmcgYW5kIEVtcGxveW1lbnQgZGF0YSBpcyBvbmx5IGN1cnJlbnRseSBhdmFpbGFibGUgYW5kIGFjY3VyYXRlIG9uIHRob3NlIHlvdW5nIHBlb3BsZSBvZiBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3LlxcblxcbkxhdGVzdCBmaWd1cmVzIChOb3ZlbWJlciAyMDE2KSByZWxlYXNlZCBieSB0aGUgRGZFIGZvbGxvd2luZyBzdWJtaXNzaW9uIG9mIG91ciBkYXRhIHNob3cgdGhhdCA4OC40JSBvZiB5b3VuZyBwZW9wbGUgYWdlZCAxNiBhbmQgMTcgYXJlIGluIHNvbWUgZm9ybSBvZiBFZHVjYXRpb24sIFRyYWluaW5nIG9yIEVtcGxveW1lbnQuIDg4JSBvZiB0aGVzZSBhcmUg4oCYSW4gTGVhcm5pbmfigJksIHdoaWxlIDAuNCUgYXJlIGVtcGxveWVkIHdpdGggbm8gdHJhaW5pbmcgb3IgZWR1Y2F0aW9uIGF0dGFjaGVkIHRvIHRoaXMgZW1wbG95bWVudC4gVGhlIHBlcmNlbnRhZ2Ugb2YgdGhpcyBhZ2UgZ3JvdXAgY3VycmVudGx5IG5vdCBpbiBFZHVjYXRpb24sIFRyYWluaW5nIG9yIEVtcGxveW1lbnQgKE5FRVQpIHN0YW5kcyBhdCAxLjAlLiBBZnRlciBsb2FkaW5nIGFsbCBkYXRhIHJlY2VpdmVkIGZyb20gYWxsIHNjaG9vbHMgYW5kIHBvc3QtMTYgcHJvdmlkZXJzLCB0aGUgbnVtYmVyIG9mIHlvdW5nIHBlb3BsZSBhZ2VkIDE2IGFuZCAxNyB3aXRoIGFuIHVua25vd24gRWR1Y2F0aW9uLCBUcmFpbmluZyBvciBFbXBsb3ltZW50IHNpdHVhdGlvbiBzdGFuZHMgYXQgMTAuNyUgYXQgdGhlIGVuZCBvZiBOb3ZlbWJlciAyMDE2LiBUaGlzIGNvbXBhcmVzIHRvIDUuOCUgZm9yIHRoZSBTb3V0aCBFYXN0IFJlZ2lvbiBhbmQgNS4yJSBuYXRpb25hbGx5Llxcblxcbkhvd2V2ZXIsIHdvcmsgaGFzIHN0YXJ0ZWQgaW4gRGVjZW1iZXIgdG8gYXR0ZW1wdCB0byBjb250YWN0IHRoZXNlIHlvdW5nIHBlb3BsZSB0byBkZXRlcm1pbmUgdGhlaXIgZGVzdGluYXRpb24uIFRoaXMgd29yayBpbmNsdWRlcyBhIG1peHR1cmUgb2YgY29udGFjdGluZyB5b3VuZyBwZW9wbGUgdmlhIGVtYWlsIGFuZCBTTVMgKG1lc3NhZ2luZykgYXMgd2VsbCBhcyBjb250YWN0aW5nIHlvdW5nIHBlb3BsZSBhbmQgcGFyZW50cyBkaXJlY3QgYnkgcGhvbmUuIFRoaXMgd29yayBpcyBjb250aW51aW5nIHRocm91Z2hvdXQgRGVjZW1iZXIgMjAxNiBhbmQgSmFudWFyeSAyMDE3IHdpdGggYSB2aWV3IHRvIHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdW5rbm93biB5b3VuZyBwZW9wbGUgYXMgbXVjaCBhcyBwb3NzaWJsZSBieSB0aGUgZW5kIG9mIEphbnVhcnkuIFRoZSBEZkUgd2lsbCBwcmVzZW50IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgTG9jYWwgQXV0aG9yaXR5IHVzaW5nIHRoZSBhdmVyYWdlcyBmb3IgdGhlIG1vbnRocyBvZiBOb3ZlbWJlciBhbmQgRGVjZW1iZXIgMjAxNiBhbmQgSmFudWFyeSAyMDE3LiBUaGUgdHJhY2tpbmcgb2YgeW91bmcgcGVvcGxl4oCZcyBFZHVjYXRpb24sIFRyYWluaW5nIGFuZCBFbXBsb3ltZW50IHNpdHVhdGlvbiBpcyBhcmUgc291cmNlIGludGVuc2l2ZSB0YXNrLiBUaGUgc2l6ZSBvZiB0aGUgYWNhZGVtaWMgYWdlIDE2IGFuZCAxNyBjb2hvcnQgc2l6ZSBpbiBXZXN0IFN1c3NleCBpcyBjdXJyZW50bHkgMTcsMTY2LiBPbmx5IEhhbXBzaGlyZSwgS2VudCBhbmQgU3VycmV5IGhhdmUgbGFyZ2VyIGNvaG9ydCBzaXplcyBpbiB0aGUgU291dGggRWFzdCBSZWdpb24uIEFjY3VyYWN5IGFuZCB0aW1lbGluZXNzIG9mIGRhdGEgcmVjZWl2ZWQgZnJvbSBzY2hvb2xzLCBwb3N0LTE2IHByb3ZpZGVycyBhbmQgb3RoZXIgc2VydmljZXMgYW5kIG9yZ2FuaXNhdGlvbnMgaXMgY3J1Y2lhbCB0byBzdWNjZXNzIGFzIHdlbGwgYXMgaGF2aW5nIHRoZSByZXNvdXJjZXMgdG8gY29udGFjdCB0aG9zZSB5b3VuZyBwZW9wbGUgd2hvc2UgbmFtZSBkb2VzIG5vdCBhcHBlYXIgb24gYW55IGVucm9sbWVudCBsaXN0cyByZWNlaXZlZC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIg4oCTIFNlcHRlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcbiBUaGVyZSBpcyBubyBFVEUgZGF0YSBmb3IgU2VwdGVtYmVyIDIwMTYuIFRoZSBwZXJmb3JtYW5jZSBvZiBMb2NhbCBBdXRob3JpdGllcyBpcyBub3QgbWVhc3VyZWQgYnkgdGhlIERmRSBvdmVyIHRoZSBzdW1tZXIgbW9udGhzIGR1ZSB0byBtYW55IHlvdW5nIHBlb3BsZSBsZWF2aW5nIGNvdXJzZXMgb3ZlciB0aGlzIHBlcmlvZCwgcmVzdWx0aW5nIGluIGEgZ3JhZHVhbCByaXNlIGluIHRoZSBudW1iZXIgb2YgeW91bmcgcGVvcGxlIHdob3NlIEVURSBhY3Rpdml0eSBpcyB1bmtub3duLiBGdXJ0aGVybW9yZSwgYXQgdGhlIGVuZCBvZiBBdWd1c3QgZWFjaCB5ZWFyLCBhbGwgeW91bmcgcGVvcGxlIGFnZWQgMTYgdG8gMTggd2hvIHdlcmUgYXR0ZW5kaW5nIGVkdWNhdGlvbiBvciB0cmFpbmluZyBwcmlvciB0byB0aGUgZW5kIG9mIEF1Z3VzdCwgaGF2ZSB0aGVpciBFVEUgYWN0aXZpdHkgY2hhbmdlZCB0byDigJh1bmtub3du4oCZLiBUaGlzIGlzIGEgRGZFIHJlcXVpcmVtZW50IGFuZCBmb3JjZXMgYWxsIExvY2FsIEF1dGhvcml0aWVzIHRvIHJlZ3VsYXJseSByZXZpZXcgdGhlIEVURSBhY3Rpdml0eSBvZiB5b3VuZyBwZW9wbGUgbGl2aW5nIGluIHRoZWlyIGFyZWEuIEZyb20gU2VwdGVtYmVyIGVhY2ggeWVhciB0aGUgTG9jYWwgQXV0aG9yaXR5IHN0YXJ0cyB0byB0cmFjayB0aGUgRVRFIGRlc3RpbmF0aW9ucyBvZiB0aGVzZSB5b3VuZyBwZW9wbGUgdXNpbmcgYSBjb21iaW5hdGlvbiBvZiBlbnJvbG1lbnQgbGlzdHMgZnJvbSBzaXh0aCBmb3JtcywgY29sbGVnZXMgYW5kIG90aGVyIHBvc3QgMTYgRVRFIHByb3ZpZGVycywgdGhlIE5hdGlvbmFsIEFwcHJlbnRpY2VzaGlwIFNlcnZpY2UgYW5kIHRoZSBEZXBhcnRtZW50IGZvciBXb3JrIGFuZCBQZW5zaW9ucywgYXMgd2VsbCBhcyBhdHRlbXB0aW5nIHRvIGNvbnRhY3QgeW91bmcgcGVvcGxlIHRoZW1zZWx2ZXMsIHNob3VsZCB0aGV5IG5vdCBhcHBlYXIgb24gYW55IGVucm9sbWVudCBsaXN0LlxcblxcbkF0IHRoZSBlbmQgb2YgU2VwdGVtYmVyIDIwMTYgdGhlIExvY2FsIEF1dGhvcml0eSBoYWQgcmVjZWl2ZWQgZW5yb2xtZW50IGxpc3RzIGZyb20gYWxsIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIGluIFdlc3QgU3Vzc2V4LCB3aXRoIHRoZSBleGNlcHRpb24gb2YgNiBzY2hvb2xzLiBUaGlzIGRvZXMgbm90IGluY2x1ZGUgcHJpdmF0ZSBzY2hvb2xzIGFzIHRoZXkgaGF2ZSBubyBzdGF0dXRvcnkgb2JsaWdhdGlvbiB0byBzZW5kIHRoZSBBdXRob3JpdHkgdGhlaXIgZGF0YS4gSXQgZG9lcyBpbmNsdWRlIEFjYWRlbWllcy4gVGhlIEF1dGhvcml0eSBoYXMgYWxzbyBzdGFydGVkIHRvIHJlY2VpdmUgZW5yb2xtZW50IGxpc3RzIGZyb20gcG9zdCAxNiBwcm92aXNpb24gbG9jYXRlZCBpbiBuZWlnaGJvcmluZyBhdXRob3JpdGllcy4gVUNBUyBsaXN0cyB3aWxsIGJlIGF2YWlsYWJsZSBmcm9tIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIHRvd2FyZHMgdGhlIGVuZCBvZiBPY3RvYmVyL2Vhcmx5IE5vdmVtYmVyLiBUaGlzIHRyYWNraW5nIGFjdGl2aXR5IHdpbGwgY29udGludWUgb3ZlciB0aGUgcXVhcnRlciAzIHBlcmlvZC4gVGhyb3VnaCB0aGlzIHByb2Nlc3MgdGhlIEF1dGhvcml0eSBjYW4gc3RhcnQgdG8gaWRlbnRpZnkgeW91bmcgcGVvcGxlIHdobyBtYXkgbm90IGJlIG1lZXRpbmcgdGhlIOKAmER1dHkgdG8gUGFydGljaXBhdGXigJkgaW4gRWR1Y2F0aW9uIG9yIFRyYWluaW5nLCB0aG9zZSBub3QgaW4gYW55IGZvcm0gb2YgZWR1Y2F0aW9uLCB0cmFpbmluZyBvciBlbXBsb3ltZW50IChORUVUKSwgb3IgdGhvc2Ugd2hvIGFyZSBhdCByaXNrIG9mIGJlY29taW5nIE5FRVQgYW5kIHByb3ZpZGUgc3VwcG9ydCB0byB0aGVzZSB5b3VuZyBwZW9wbGUgYXMgYXBwcm9wcmlhdGUuXFxuXFxuSXQgaXMgZGlmZmljdWx0IHRvIHNheSB3aXRoIGFueSBjZXJ0YWludHkgYXQgdGhpcyBwb2ludCB3aGV0aGVyIHRoZSBBdXRob3JpdHkgd2lsbCByZWFjaCBpdHMgRVRFIHRhcmdldCBieSB0aGUgZW5kIG9mIHRoZSB5ZWFyLiBBIG1vcmUgY2VydGFpbiBpZGVhIHdpbGwgYmUgcG9zc2libGUgYXQgdGhlIGVuZCBvZiBxdWFydGVyIDMgKGVuZCBEZWNlbWJlciAyMDE2KSB3aGVuIHRoZSBtYWpvcml0eSBvZiB0aGUgZGF0YSB3aWxsIGhhdmUgYmVlbiByZWNlaXZlZC4gSXQgaXMgYWxzbyBjb21wbGljYXRlZCBieSB0aGUgZmFjdCB0aGF0IHRoZSBEZkUgaGF2ZSBjaGFuZ2VkIHRoZSB0cmFja2luZyByZXF1aXJlbWVudHMgb24gTG9jYWwgQXV0aG9yaXRpZXMgZnJvbSBTZXB0ZW1iZXIgMjAxNi4gTG9jYWwgQXV0aG9yaXRpZXMgbm93IGhhdmUgdG8gc3VibWl0IGRhdGEgdG8gdGhlIERmRSBmb3IgeW91bmcgcGVvcGxlIGFnZWQgMTYgYW5kIDE3IG9ubHksIG9yIHVwIHRvIGFnZSAyNSBpZiB0aGUgeW91bmcgcGVyc29uIGhhcyBhIHNwZWNpYWwgZWR1Y2F0aW9uYWwgbmVlZCBvciBkaXNhYmlsaXR5IChTRU5EKS4gV2hpbGUgTG9jYWwgQXV0aG9yaXRpZXMgYXJlIGV4cGVjdGVkIHRvIGludHJvZHVjZSBsb2NhbGx5IGRlc2lnbmVkIHByb2NlZHVyZXMgdG8gaWRlbnRpZnkgdGhvc2UgYWNhZGVtaWMgYWdlIDE4LXllYXItb2xkcyB3aG8gbmVlZCBzdXBwb3J0IHRvIGVuZ2FnZSwgd2UgYXJlIGFsc28gdG8gaW50ZW5zaWZ5IG91ciBlZmZvcnRzIHRvIGVuc3VyZSBhbGwgYWNhZGVtaWMgYWdlIDE2IGFuZCAxNy15ZWFyLW9sZHMgYXJlIHRyYWNrZWQgZWZmaWNpZW50bHkgdG8gcmVkdWNlIHRoZSBwcm9wb3J0aW9uIHdob3NlIGFjdGl2aXR5IGlzIHJlY29yZGVkIGFzIG5vdCBrbm93biBhbmQgdG8gaW5jcmVhc2UgdGhlIHByb3BvcnRpb24gZW50ZXJpbmcgYW5kIHN1c3RhaW5pbmcgYW4gUlBBIChSYWlzaW5nIFBhcnRpY2lwYXRpb24gQWdlKSBjb21wbGlhbnQgZGVzdGluYXRpb24gYWZ0ZXIgbGVhdmluZyBzY2hvb2wuIFRoZSBEZkUgd2lsbCB0aGVyZWZvcmUgcHVibGlzaCBvdXIgcGVyZm9ybWFuY2UgZm9yIDE2IGFuZCAxNyB5ZWFyIG9sZHMgb25seSAob3IgdXAgdG8gMjUgd2l0aCBTRU5EKSBhcyBvcHBvc2VkIHRvIHlvdW5nIHBlb3BsZSBhZ2VkIDE2IHRvIDE4LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIG1lYXN1cmUgaXMgdGhlIHByb3BvcnRpb24gb2YgV2VzdCBTdXNzZXggcmVzaWRlbnQgeW91bmcgcGVvcGxlIG9mIGFjYWRlbWljIGFnZSAxNiwgMTcgYW5kIDE4IChzY2hvb2wgeWVhcnMgMTIgdG8gMTQpIHdobyBhcmUgZW5nYWdlZCBpbiBzb21lIGZvcm0gb2YgZWR1Y2F0aW9uLCBlbXBsb3ltZW50IG9yIHRyYWluaW5nLiBUaGlzIGluY2x1ZGVzIHlvdW5nIHBlb3BsZSB3aG9zZSBwZXJtYW5lbnQgYWRkcmVzcyBpcyB3aXRoaW4gV2VzdCBTdXNzZXggYnV0IHRoZXkgYXJlIHN0dWR5aW5nIGF3YXkgZnJvbSBob21lLiBJdCBpcyBjb25zaXN0ZW50IHdpdGggdGhlIExvY2FsIEF1dGhvcml0aWVzIGR1dGllcyB0byBlbmNvdXJhZ2UsIGVuYWJsZSBhbmQgYXNzaXN0IHlvdW5nIHBlb3BsZSB0byBwYXJ0aWNpcGF0ZSBpbiBlZHVjYXRpb24gb3IgdHJhaW5pbmcgKEVkdWNhdGlvbiBhbmQgU2tpbGxzIEFjdCAyMDA4LCBTLjY4KS5cXG5cXG5JdCBpcyBub3QgdGhlIHNhbWUgYXMgdGhvc2UgeW91bmcgcGVvcGxlIGFnZWQgMTYgYW5kIDE3IHdobyBhcmUgbWVldGluZyB0aGUg4oCYZHV0eSB0byBwYXJ0aWNpcGF0ZeKAmSBvciB0aG9zZSBhZ2VkIDE2IHRvIDE4IGVuZ2FnZWQgaW4gZWR1Y2F0aW9uIG9yIHRyYWluaW5nIChpLmUuIOKAmGluIExlYXJuaW5n4oCZKSBhcyBtZWFzdXJlZCBieSB0aGUgRGZFLiBUaGVzZSBtZWFzdXJlcyBoYXZlIHJ1bGVzIGFyb3VuZCB3aGF0IGNvdW50cyBhcyDigJhwYXJ0aWNpcGF0aW9u4oCZIChpLmUuIHRvIG1lZXQgdGhpcyBkdXR5IG9yIHRvIGJlIGNsYXNzZWQgYXMg4oCYSW4gTGVhcm5pbmfigJkgZW1wbG95bWVudCBoYXMgdG8gYmUgY29tYmluZWQgd2l0aCBzb21lIGZvcm0gb2YgYWNjcmVkaXRlZCB0cmFpbmluZykuIEluIGNvbnRyYXN0LCB3aXRoaW4gdGhlIDE2IHRvIDE4IHllYXIgb2xkcyBpbiBFRVQgbWVhc3VyZSwgd2UgY291bnQgeW91bmcgcGVvcGxlIHdobyBhcmUgaW4gcGFydC10aW1lIGVtcGxveW1lbnQgb3IgZW1wbG95bWVudCB3aXRob3V0IHRyYWluaW5nIGV2ZW4gdGhvdWdoIHRoZXNlIHlvdW5nIHBlb3BsZSBhcmUgbm90IG1lZXRpbmcgdGhlIER1dHkgdG8gUGFydGljaXBhdGUuXFxuXFxuVGhlIGZpZ3VyZSBmb3IgSnVuZSAyMDE2ICg4NS4xJSkgaXMgcHJvdmlkZWQgZnJvbSBsb2NhbCBkYXRhLiBJZiB0aGlzIHBlcmZvcm1hbmNlIGlzIHNwbGl0IGJ5IGFjYWRlbWljIGFnZSBncm91cCwgd2UgY2FuIHNlZSB0aGF0IHRoZSBsYXJnZXN0IHByb2JsZW0gaXMgaW4gdGhlIGFjYWRlbWljIGFnZSAxOCBncm91cDogQWdlIDE2ICh5ZWFyIDEyKSDigJMgOTQuMSU7IEFnZSAxNyAoeWVhciAxMykg4oCTIDg3LjUlOyBBZ2UgMTggKHllYXIgMTQpIOKAkyA3My44JS4gT3VyIOKAmHVua25vd27igJkgY29ob3J0IGlzIGFsc28gYXQgaXRzIGxhcmdlc3QgaW4gdGhlIEFnZSAxOCBncm91cCBhcyBmb2xsb3dzOiBBZ2UgMTYg4oCTIDQuNSU7IEFnZSAxNyDigJMgOS45JTsgQWdlIDE4IOKAkyAxOS40JTsgT3ZlcmFsbCAxNiB0byAxOCDigJMgMTEuMyUuIEluIGJlbmNobWFya2luZyB0ZXJtcywgdGhlIHBlcmNlbnRhZ2Ugb2YgMTYgdG8gMTggeWVhciBvbGRzIHdobyBhcmUgbm90IGluIGVkdWNhdGlvbiwgZW1wbG95bWVudCBvciB0cmFpbmluZyAoTkVFVCkgd2FzIDMuOSUgaW4gMjAxNS5UaGUgc2VydmljZSBhcmUgb24gdHJhY2sgdG8gbWFrZSBhbiBpbXByb3ZlbWVudCBvbiBsYXN0IHllYXIuIFRoaXMgdGltZSBsYXN0IHllYXIgb3VyIHBlcmZvcm1hbmNlIHdhcyBhdCA4MC4yJSwgc2hvd2luZyBhbiBpbmNyZWFzZSBvZiA1JS5cXG5cXG5UaGUgbnVtYmVycyBpbiBFRVQgYW5kIHVua25vd24gdGVuZCB0byBkZWNsaW5lIGFuZCByaXNlIHJlc3BlY3RpdmVseSBmcm9tIEphbnVhcnkgdGhyb3VnaCB0byB0aGUgc3VtbWVyIGFzIHlvdW5nIHBlb3BsZSBsZWF2ZSBhbmQgY2hhbmdlIGNvdXJzZXMvcHJvdmlkZXJzLiBUZWFtcyB3b3JrIHdpdGggcG9zdCAxNiBwcm92aWRlcnMsIG91ciBZb3V0aCBJbnRlcnZlbnRpb25zIFRlYW0sIEZpbmQgaXQgT3V0IFNob3BzIGFuZCB0aGUgQ29udGFjdCBDZW50cmUgdG8gdHJ5IHRvIGRldGVybWluZSB0aGUgb24tZ29pbmcgZGVzdGluYXRpb24gb2YgdGhvc2UgeW91bmcgcGVvcGxlIHdobyBsZWF2ZSBjb3Vyc2VzIGFuZCBwcm92aWRlcnMgZWFybHkuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBvbGRlciBhZ2UgZ3JvdXAgaXMgd2hlcmUgd2Ugc3RydWdnbGUgaW4gdGVybXMgb2Yg4oCYdHJhY2tpbmfigJkgeW91bmcgcGVvcGxl4oCZcyBFRVQgZGVzdGluYXRpb24uIFdlIG5vIGxvbmdlciByZWNlaXZlIFVDQVMgZGF0YSBkaXJlY3QgZnJvbSBVQ0FTLCBhbmQgcmVseSBvbiBzY2hvb2xzIGFuZCBjb2xsZWdlcyBzZW5kaW5nIHVzIHRoaXMgZGF0YSwgd2hpY2ggaXNu4oCZdCBhbHdheXMgY29tcGxldGUuIE1hbnkgb2YgdGhlc2UgeW91bmcgcGVvcGxlIG1heSBiZSB3b3JraW5nIG9yIHN0dWR5aW5nIGF3YXkgZnJvbSBob21lIGFuZCB0aGVyZWZvcmUgcmVtYWluIGRpZmZpY3VsdCB0byBjb250YWN0IHRvIHJlLXZlcmlmeSB0aGVpciBFRVQgc3RhdHVzLiBGcm9tIFNlcHRlbWJlciAyMDE2IHRoZSBEZkUgd2lsbCBubyBsb25nZXIgYmUgcmVwb3J0aW5nIG91ciBwZXJmb3JtYW5jZSBvbiB0aGUgMTYgdG8gMTggYWdlIGdyb3VwLiBJdCBpcyBtb3ZpbmcgaW5zdGVhZCB0byB0aG9zZSB5b3VuZyBwZW9wbGUgYWdlZCAxNiBhbmQgMTcgaW4gbGluZSB3aXRoIHRoZSDigJhEdXR5IHRvIFBhcnRpY2lwYXRl4oCZIGxlZ2lzbGF0aW9uLiBUaGlzIGNoYW5nZSB3aWxsIGVuc3VyZSB0aGF0IHRoZSBzZXJ2aWNlIGNhbiBmb2N1cyBpdHMgZWZmb3J0IG9uIHJlZHVjaW5nIHRoZSB1bmtub3ducyBhbmQgeW91bmcgcGVvcGxlIHdobyBhcmUgTkVFVCBpbiB0aGUgeWVhciAxMiBhbmQgeWVhciAxMyBjb2hvcnQgYW5kIGluIHR1cm4gd29yayB0byBpbXByb3ZlIHRoZSBudW1iZXJzIGluIEVFVCwgc3BlY2lmaWNhbGx5IGZvciB0aG9zZSB5b3VuZyBwZW9wbGUgd2hvIGZhbGwgdW5kZXIgdGhlIOKAmER1dHkgdG8gUGFydGljaXBhdGXigJkgbGVnaXNsYXRpb24uXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBkZXZlbG9wbWVudCBvZiB0aGUgUG9zdCAxNiBQYXJ0aWNpcGF0aW9uIGFuZCBFbmdhZ2VtZW50IGluIEVFVCBzdHJhdGVneSBhbG9uZ3NpZGUga2V5IHBhcnRuZXJzIHdpbGwgcHJvdmlkZSBzdHJhdGVnaWMgb3ZlcnNpZ2h0IGFuZCBkaXJlY3Rpb24gdG8gdGhlIHdvcmsgYXJvdW5kIGVuZ2FnaW5nIHlvdW5nIHBlb3BsZSBpbiBFRVQgYW5kIG1haW50YWluaW5nIHRoZWlyIGVuZ2FnZW1lbnQuIFRoZSBhbWFsZ2FtYXRpb24gb2YgdGhlIFRoaW5rIEZhbWlseSwgRWFybHkgQ2hpbGRob29kIFNlcnZpY2UgYW5kIFlvdW5nIFBlb3BsZeKAmXMgU2VydmljZSBkYXRhIHRlYW1zIGFsc28gcHJvdmlkZXMgYW4gZXhjZWxsZW50IG9wcG9ydHVuaXR5IHRvIGlkZW50aWZ5IHlvdW5nIHBlb3BsZSBlYXJseSB3aG8gYXJlIGF0IHJpc2sgb2YgYmVjb21pbmcgTkVFVCBwb3N0IDE2IGFuZCB0byBwcm92aWRlIHRhcmdldGVkIGludGVydmVudGlvbiB0byBwcmV2ZW50IHRoaXMgaGFwcGVuaW5nLiBUaGlzIHN0cmF0ZWd5IGZvY3VzZXMgb24gaW1wcm92aW5nIOKAmHByZXZlbnRpb27igJkgKHByZXZlbnRpbmcgeW91bmcgcGVvcGxlIGJlY29taW5nIE5FRVQpLCDigJhJbnRlcnZlbnRpb27igJkgKGVuc3VyaW5nIHdlIGhhdmUgdGhlIHJlc291cmNlcyB0byBrbm93IHdoYXQgeW91bmcgcGVvcGxlIGFyZSBkb2luZyBhbmQgcHV0dGluZyBpbiBwbGFjZSB0YXJnZXRlZCBpbnRlcnZlbnRpb24gdG8gc3VwcG9ydCB5b3VuZyBwZW9wbGUgaW50byBFRVQpIGFuZCDigJhzdXN0YWluYWJpbGl0eeKAmSAoc3VwcG9ydGluZyB0aG9zZSB5b3VuZyBwZW9wbGUgd2l0aCBhIGhpc3Rvcnkgb2Yg4oCYZHJvcHBpbmcgb3V04oCZIG9mIEVFVCBhbmQgdGFja2xpbmcgb2JzdGFjbGVzIHRvIGVuZ2FnZW1lbnQpLlxcblxcbiBcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE2KipcXG5cXG4tIC0gLVxcblxcbuKAmEFsdGhvdWdoIGluIE1hcmNoIDIwMTYgd2Ugd2VyZSBhbG1vc3QgMTAlIHVuZGVyIHRhcmdldCwgdGhpcyBpcyBsYXJnZWx5IGEgcmVzdWx0IG9mIG91ciDigJh1bmtub3du4oCZIGNvaG9ydCBiZWluZyAxMS4xJSBhdCB0aGlzIHRpbWUuIE91ciDigJh1bmtub3duc+KAmSBhcmUgdGhvc2UgeW91bmcgcGVvcGxlIHdob20sIGRlc3BpdGUgdmFyaW91cyBlZmZvcnRzLCB3ZSBoYXZlIGJlZW4gdW5hYmxlIHRvIGNvbnRhY3QgdG8gcmUtdmVyaWZ5IHRoZWlyIGN1cnJlbnQgRUVUIGFjdGl2aXR5LiBJdCBpcyB2ZXJ5IGxpa2VseSB0aGF0IGEgZ29vZCBwZXJjZW50YWdlIG9mIHRoZXNlIHlvdW5nIHBlb3BsZSBhcmUgcGFydGljaXBhdGluZyBpbiBzb21lIGZvcm0gb2YgRUVULCBtb3N0IGxpa2VseSBlbXBsb3ltZW50LCBvciB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhleSBoYXZlIG1vdmVkIG91dCBvZiBXZXN0IFN1c3NleC4gVGhlIG1ham9yaXR5IG9mIHRoZSB1bmtub3duIGNvaG9ydCBpcyBpbiB0aGUgb2xkZXIgYWdlIGdyb3VwLiBXZSBoYXZlIGJlZW4gd29ya2luZyBoYXJkIG92ZXIgdGhlIHBhc3QgeWVhciB0byBpbXByb3ZlIG91ciB1bmtub3duIGZpZ3VyZXMgYW5kIHRoZXJlZm9yZSBpbXByb3ZlIG91ciBkYXRhIGludGVncml0eSBhbmQgcmVsaWFiaWxpdHkuIFdlIGhvcGUgdG8gbWFrZSBmdXJ0aGVyIGltcHJvdmVtZW50cyB0aGlzIHllYXIgYXMgd2UgYXJlIGJlY29taW5nIGluY3JlYXNpbmdseSBtb3JlIGNvbmZpZGVudCB3aXRoIG91ciBjb2hvcnQgZGF0YS7igJlcXG5cXG5cIn1dLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyBhbiBpbmNyZWFzZSBpbiB0aGUgJSBvZiAxNiAtIDE3IHllYXIgb2xkcyBpbiBlZHVjYXRpb24sIGVtcGxveW1lbnQgb3IgdHJhaW5pbmcgaW4gV2VzdCBTdXNzZXhcIixcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzZSAgdGhlIG51bWJlciBvZiAxNiAtIDE3IHllYXIgb2xkcyBpbiBlZHVjYXRpb24sIGVtcGxveW1lbnQgb3IgdHJhaW5pbmcgaW4gV2VzdCBTdXNzZXggXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvMjE0NUE5MTUtMkU0OC00QUI2LUFGMzYtNkM4MEE0QzJGQ0ZDXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTQtMDMtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6OTUsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjk1LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6Im52YXUtcjMybiJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE2fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTZ9fSxcInN0YXJ0XCI6XCIyMDE2LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE2LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwiIHRoZSAlIG9mIDE2IC0gMTcgeWVhciBvbGRzIGluIGVkdWNhdGlvbiwgZW1wbG95bWVudCBvciB0cmFpbmluZyBpbiBXZXN0IFN1c3NleFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6ZmFsc2UsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiYmFkXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTE5VDExOjQwOjQ2LjI4NFoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTowMToxMi4zMDRaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTlUMTE6NDA6NDYuMjg0WiIsInRhcmdldF90b2xlcmFuY2UiOjksImlkIjoidXR3cS01cnk0In0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTE5VDExOjQwOjQ2LjUxOVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTowMToxMi4zODVaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTlUMTE6NDA6NDYuNTE5WiIsImNyZWF0ZWRfYnkiOiIzZHB2LWpyOG0ifSx7ImlkIjoiaWc2Ni1ucG5nIiwibmFtZSI6IkFwcHJlbnRpY2VzaGlwcyBpbiBXZXN0IFN1c3NleCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRTg5REJCNzEtNTgwNC00NDc2LUI0Q0ItRDFFQzM4MDkxRTAzXCJ9XSxbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIFtOYXRpb25hbCBBcHByZW50aWNlc2hpcCBTZXJ2aWNlXShodHRwOi8vd3d3LmFwcHJlbnRpY2VzaGlwcy5vcmcudWspIGlzIHBhcnQgb2YgdGhlIFNraWxscyBGdW5kaW5nIEFnZW5jeVwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgQ291bnR5IENvdW5jaWwgaGFzIGVtYnJhY2VkIGFwcHJlbnRpY2VzaGlwcyBhbmQgd2lzaGVzIG90aGVyIGVtcGxveWVycyBkbyBsaWtld2lzZS4gQW55IGJ1c2luZXNzZXMgbmV3IHRvIEFwcHJlbnRpY2VzaGlwcyBjYW4gYWNjZXNzIGluZm9ybWF0aW9uIGFuZCBhZHZpY2UgZnJvbSB0aGUgQXBwcmVudGljZW1ha2VycyB3ZWJzaXRlLiBXZXN0IFN1c3NleCBhbHNvIG9mZmVycyBidXNpbmVzcyB0byBidXNpbmVzcyBhZHZpY2UgdG8gYW55IGVtcGxveWVyIG5ldyB0byBBcHByZW50aWNlc2hpcHNcXG5cXG5BcHByZW50aWNlc2hpcHMgYXJlIGEga2V5IHdheSBvZiBib29zdGluZyB0aGUgbG9jYWwgZWNvbm9teSwgdGhyb3VnaCBwcm92aWRpbmcgdHJhaW5pbmcgYWxvbmcgc2lkZSBwYWlkIHdvcmsgb3Bwb3J0dW5pdGllcywgcHJvdmlkaW5nIG9wcG9ydHVuaXRpZXMgZm9yIHNraWxscyBkZXZlbG9wbWVudCBhbGwgb2Ygd2hpY2ggY2FuIGVuaGFuY2UgcHJvZHVjdGl2aXR5IGFuZCBpbmNyZWFzZSBjb21wZXRpdGl2ZW5lc3Mgb2YgYnVzaW5lc3Nlcy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyAqKldTQ0MgQXBwcmVudGljZXMqKlxcblxcbkFzIG9uZSBvZiB0aGUgbGFyZ2VzdCBlbXBsb3llcnMgaW4gdGhlIGNvdW50eSwgdGhlIENvdW50eSBDb3VuY2lsIGhhcyBhbiBpbXBvcnRhbnQgcm9sZSB0byBwbGF5IGluIGxlYWRpbmcgYnkgZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSB0aGUgYmVuZWZpdHMgb2YgYXBwcmVudGljZXNoaXBzIHRvIGEgcmFuZ2Ugb2Ygc3Rha2Vob2xkZXJzLlxcblxcblNpbmNlIDIwMTAgb3ZlciAzMDAgcGVvcGxlIGhhdmUgc3R1ZGllZCBhbiBhcHByZW50aWNlc2hpcCBwcm9ncmFtbWUgd2hpbHN0IGVtcGxveWVkIGJ5IHRoZSBDb3VudHkgQ291bmNpbCwgd2Ugb2ZmZXIgYSBkaXZlcnNlIHJhbmdlIG9mIEFwcHJlbnRpY2VzaGlwcyBzdWNoIGFzIENhcmUsIEhSLCBMZWdhbCwgRW5naW5lZXJpbmcuIEFwcHJlbnRpY2VzaGlwcyBhcmUgcmVhbGx5IGhlbHBpbmcgdXMgdG8gZGV2ZWxvcCBvdXIgYnVzaW5lc3MsIEFwcHJlbnRpY2VzIGJyaW5nIGZyZXNoIGlkZWFzIGFuZCBoZWxwIHVzIGV4cGVyaWVuY2UgbmV3IHRlY2hub2xvZ3kgdG8gdGhlIG9yZ2FuaXNhdGlvbi4gODUlIG9mIHRob3NlIHdobyBjb21wbGV0ZWQgdGhlaXIgYXBwcmVudGljZXNoaXAgaGF2ZSBtb3ZlZCBpbnRvIHBhaWQgZW1wbG95bWVudCBoZWxwaW5nIHRvIGV2aWRlbmNlIGFwcHJlbnRpY2VzaGlwcyB3b3JrIGFuZCBnaXZlIHJlYWwgZWNvbm9taWMgYmVuZWZpdC4gQXMgdGhlIENvdW50eSBDb3VuY2ls4oCZcyB3b3JrZm9yY2Ugc2l6ZSBzaHJpbmtzIGFuZCBvdXIgc2VydmljZSBwcm92aXNpb24gaXMgb3V0c291cmNlZCwgdGhlIGltcGFjdCBvZiB0aGUgQ291bnR5IENvdW5jaWzigJlzIGFwcHJlbnRpY2VzaGlwIHByb2dyYW1tZSByZWR1Y2VzLiBJdCBpcyB0aGVyZWZvcmUgaW1wb3J0YW50LCBhcyB3ZSBjb21taXNzaW9uIHNlcnZpY2VzLCB0byByZWFsaXN0aWNhbGx5IGJ1aWxkIGFwcHJlbnRpY2VzaGlwcyBhbmQgZW1wbG95bWVudCBhbmQgc2tpbGxzIGluaXRpYXRpdmVzIGludG8gY29udHJhY3R1YWwgcmVxdWlyZW1lbnRzIGluIG9yZGVyIHdlIGNhbiBtYWludGFpbiB0aGUgYmVuZWZpdCBhcHByZW50aWNlc2hpcHMgY2FuIGJyaW5nIHRvIHRoZSBsb2NhbCBlY29ub215LlxcblxcbiBcXG5cXG5WaWV3IG91ciBXU0NDIEFwcHJlbnRpY2VzaGlwIHBhZ2VzIHdoZXJlIHlvdSBjYW4gZmluZCBvdXQgaW5mb3JtYXRpb24gYW5kIHZpZXcgYWxsIHRoZSBsYXRlc3QgV2VzdCBTdXNzZXggQXBwcmVudGljZXNoaXAgdmFjYW5jaWVzLiBXYXRjaCBvdXIgdmlkZW8gJ0NvdW50eSBDb3VuY2lsIGFwcHJlbnRpY2VzIGZpbmQgZ2F0ZXdheSB0byB3b3JrJ1xcblxcbiBcIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXZSBjdXJyZW50bHkgaGF2ZSA1OCBhcHByZW50aWNlcyB3b3JraW5nIGluIFdTQ0Mgb3IgU2Nob29scywgdGhlIGJyZWFrZG93biBvZiB3aGljaCBpczpcXG5cXG4xOCBBcHByZW50aWNlc2hpcCBjb250cmFjdHNcXG5cXG45IFBlcm1hbmVudCBjb250cmFjdHNcXG5cXG4zMSBTY2hvb2wgY29udHJhY3RzXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRUVCODMyQkYtOUQwNi00RjgyLThDNjAtNkVDRDgwN0MwMkZFXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqQXBwcmVudGljZXNoaXAgUmVwb3J0IChGZWIgMTgpKipcXG5cXG4tIC0gLVxcblxcbldlIGNvbnRpbnVlIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgYXBwcmVudGljZXNoaXBzIHRha2VuIHVwIGFjcm9zcyBvdXIgQ29ycG9yYXRlIFNlcnZpY2VzIGFuZCBvdXIgU2Nob29scyAoYW4gaW5jcmVhc2Ugb2YgMTUgb3ZlciB0aGUgcHJldmlvdXMgbW9udGggYW5kIGFuIDI1JSBpbmNyZWFzZSBvbiBKYW51YXJ5IDIwMTcpIFdlIGFyZSB1c2luZyBhIG51bWJlciBvZiBjYW1wYWlnbmluZyB0b29scyB0byBpbmNpdGUgaW50ZXJlc3QsIHJhaXNlIGF3YXJlbmVzcywgYnVzdCBzb21lIG15dGhzIGFuZCBpbmNyZWFzZSB0YWtlIHVwLCBmb3IgZXhhbXBsZSBob3N0aW5nIGFuIGluZm9ybWF0aW9uIHNlc3Npb24gdG8gcHJvbW90ZSB0aGUgbmV3IFRlYWNoaW5nIHBvc3QgZ3JhZHVhdGUgZGVncmVlIGFwcHJlbnRpY2VzaGlwLCBhdHRlbmRpbmcgU2VuaW9yIExlYWRlcnNoaXAgVGVhbSBNZWV0aW5ncywgSGVhZCBUZWFjaGVyIGFuZCBCdXNpbmVzcyBNYW5hZ2VyIEJyaWVmaW5ncyBhbmQgcnVubmluZyBhIHNlcmllcyBvZiByb2Fkc2hvd3MgYXJvdW5kIHRoZSBDb3VudHkgZm9yIG91ciBlbXBsb3llZXMgYW5kIG1hbmFnZXJzLlxcblxcbldlIGhhdmUgYWxzbyBiZWVuIHNvdXJjaW5nIHByb3ZpZGVycyB0byBkZWxpdmVyIG91ciBhcHByZW50aWNlc2hpcCByZXF1aXJlbWVudHMgYW5kIGVuc3VyaW5nIHRoZXkgYXJlIHNpZ25lZCB1cCB0byBvdXIgRHluYW1pYyBQdXJjaGFzaW5nIFN5c3RlbSBhbmQgYWJsZSB0byBkZWxpdmVyIG91ciByZXF1aXJlbWVudHMuXFxuXFxuV2UgYXJlIHN0aWxsIHdhaXRpbmcgZm9yIGtleSBhcHByZW50aWNlc2hpcHMgdG8gYmUgZmluYWxpc2VkIHRoYXQgYXJlIG9mIHBhcnRpY3VsYXIgaW50ZXJlc3QgdG8gdXMgYXMgYSBMb2NhbCBBdXRob3JpdHkgYW5kIHRoZXNlIGFyZTpcXG5cXG4qIFNvY2lhbCBXb3JrIGRlZ3JlZVxcblxcbiogT2NjdXBhdGlvbmFsIFRoZXJhcHkgZGVncmVlXFxuXFxuKiBDaXZpbCBFbmdpbmVlcmluZyBMZXZlbCA0XFxuXFxuVGhlIFNlbmlvciBTdHJhdGVnaWMgTGVhZGVycyAoTUJBKSBMZXZlbCA3IE1hc3RlcnMgbGV2ZWwgZGVncmVlIGhhcyB2ZXJ5IHJlY2VudGx5IGJlZW4gYXBwcm92ZWQgYW5kIHdlIGFyZSBub3cgd2FpdGluZyBmb3IgdW5pdmVyc2l0eSBwcm92aWRlcnMgdG8gZ2l2ZSB1cyBkYXRlcyBvZiB3aGVuIHRoZXkgd2lsbCBiZSByZWFkeSB0byBkZWxpdmVyLlxcblxcbldlIGNvbnRpbnVlIHRvIGhhdmUgY2hhbGxlbmdlcyBhc3NvY2lhdGVkIHdpdGggYnJpbmdpbmcgaW4gdGhlIG5ldyBhcHByZW50aWNlc2hpcCBhcnJhbmdlbWVudHMg4oCTIGluY2x1ZGluZyBzb21lIG9mIHRoZSBrZXkgbmV3IGFwcHJlbnRpY2VzaGlwIHN0YW5kYXJkcyBub3QgeWV0IGJlaW5nIGF2YWlsYWJsZSAoc2VlIGFib3ZlKSwgdGhlIGZ1bmRpbmcgY3Jpc2lzIGluIG91ciBzY2hvb2xzLCBwcm9jdXJlbWVudCB0aW1lbGluZXMgYW5kIHRoZSBuZWVkIGZvciBtYW5hZ2VycyB0byByZWxlYXNlIHRoZWlyIGFwcHJlbnRpY2VzIGZvciAyMCUgb2ZmIHRoZSBqb2IgdHJhaW5pbmcuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipBcHByZW50aWNlc2hpcCBSZXBvcnQgKE9jdDE3LUphbjE4KSoqXFxuXFxuSW4gQXByaWwgMjAxNyB0aGUgR292ZXJubWVudCBpbnRyb2R1Y2VkIGEgbnVtYmVyIG9mIGFwcHJlbnRpY2VzaGlwIHJlZm9ybXMgYXMgcGFydCBvZiBpdHMgYW1iaXRpb24gdG8gY3JlYXRlIGFuIGFkZGl0aW9uYWwgMyBtaWxsaW9uIGFwcHJlbnRpY2VzaGlwIHN0YXJ0cyBpbiBFbmdsYW5kLCBieSAyMDIwLCBhbmQgaW4gZG9pbmcgc28sIGRldmVsb3Agdm9jYXRpb25hbCBza2lsbHMsIGluY3JlYXNpbmcgdGhlIHF1YW50aXR5IGFuZCBxdWFsaXR5IG9mIHRoZSBhcHByZW50aWNlc2hpcCBleHBlcmllbmNlLldlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGhhcyBiZWVuIHRyYW5zaXRpb25pbmcgb3ZlciB0byB0aGUgbmV3IGFwcHJlbnRpY2VzaGlwIGFycmFuZ2VtZW50cyB3aGljaCBtZWFuIHRoYXQgcHVibGljIHNlY3RvciBib2RpZXMgY2FuIG5vdyBwbGFuIGFuZCBmdW5kIGFwcHJlbnRpY2VzaGlwIHF1YWxpZmljYXRpb25zIGZvciB0aGVpciBzdGFmZiByYW5naW5nIGZyb20gbGV2ZWwgMiAoZXF1aXZhbGVudCB0byBHQ1NFIGxldmVsKSBxdWFsaWZpY2F0aW9ucyByaWdodCB1cCB0byBkZWdyZWUgYW5kIG1hc3RlcnMgbGV2ZWwgYXBwcmVudGljZXNoaXBzLlxcblxcbkEgbnVtYmVyIG9mIG5ldyBBcHByZW50aWNlc2hpcCBTdGFuZGFyZHMgYXJlIGJlaW5nIGRldmVsb3BlZCB3aGljaCB3aWxsIHByb3ZpZGUgZ3JlYXRlciBvcHBvcnR1bml0aWVzIGZvciBwdWJsaWMgc2VjdG9yIGFwcHJlbnRpY2VzIHdoZW4gdGhleSBjb21lIG9uLXN0cmVhbS4gU2V2ZXJhbCBvZiB0aGVzZSBzdGFuZGFyZHMgd2lsbCBiZSB2ZXJ5IGltcG9ydGFudCBpbiBmaWxsaW5nIHNraWxscyBzaG9ydGFnZXMgd2l0aGluIHRoZSBDb3VuY2lsIGluIG1hbnkgb2NjdXBhdGlvbmFsIHNraWxscyBzaG9ydGFnZSBhcmVhcyBzdWNoIGFzIFRlYWNoZXJzLCBPY2N1cGF0aW9uYWwgVGhlcmFwaXN0cywgQ2l2aWwgRW5naW5lZXJzIGFuZCBTb2NpYWwgV29ya2VycyB0byBuYW1lIGJ1dCBhIGZldy4gVGhlIGRldmVsb3BtZW50IG9mIHRoZXNlIHN0YW5kYXJkcyBoYXMgaGFkIG11Y2ggZ3JlYXRlciBpbnZvbHZlbWVudCBmcm9tIGVtcGxveWVycyB3aG8gaGF2ZSBiZWVuIGFjdGl2ZWx5IGludm9sdmVkIGluIGRldmVsb3BpbmcgdGhlIG5ldyBhcHByZW50aWNlc2hpcCBzdGFuZGFyZCBxdWFsaWZpY2F0aW9ucy5cXG5cXG5XZSBoYXZlIGNvbnRpbnVlZCBvdXIgYXBwcmVudGljZXMgZnJvbSB0aGUgMjAxNi8yMDE3IGZyb20gdGhlIG9sZCBmcmFtZXdvcmsgYW5kIGhhdmUgYWxzbyBzaWduZWQgdXAgYSBudW1iZXIgb2YgYXBwcmVudGljZXMgdW5kZXIgdGhlIG5ldyBhcnJhbmdlbWVudHMgaW4gYXJlYXMgc3VjaCBhcyBidXNpbmVzcyBhZG1pbmlzdHJhdGlvbiwgYXNzaXN0YW50IGFjY291bnRhbmN5LCBwcm9qZWN0IG1hbmFnZW1lbnQsIGZpcmUgdmVoaWNsZSBtYWludGVuYW5jZSBhbmQgdG93biBwbGFubmluZy4gQXMgdGhlIG5ldyBBcHByZW50aWNlc2hpcCBTdGFuZGFyZHMsd2hpY2ggYXJlIHN0aWxsIGluIGRldmVsb3BtZW50LCBiZWNvbWUgYXBwcm92ZWQsIHdlIGFyZSBjb25maWRlbnQgdGhhdCBtYW55IG1vcmUgc3RhZmYgYW5kIG5ldyBhcHByZW50aWNlcyB3aWxsIGJlIGFibGUgdG8gdGFrZSB1cCBmdXJ0aGVyIG9wcG9ydHVuaXRpZXMgb3ZlciB0aGUgY29taW5nIHllYXIuIFRoZXNlIHdpbGwgY29udHJpYnV0ZSB0byB0aGUgcHJvZmVzc2lvbmFsaXphdGlvbiBhbmQgdXBza2lsbGluZyBvZiBvdXIgd29ya2ZvcmNlIGVuYWJsaW5nIGFuZCBzdXBwb3J0aW5nIHRoZW0gdG8gY29udGludW91c2x5IGRldmVsb3AgYW5kIGltcHJvdmUgdGhlIGRlbGl2ZXJ5IG9mIGVmZmVjdGl2ZSBzZXJ2aWNlcyB0byBvdXIgbG9jYWwgY29tbXVuaXR5LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy83RjkyOUEzQS04NTEwLTQwM0QtOTIxNS0yMzdFMzU0RjU1RjRcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVW5kZXIgdGhlIG5ldyBhcHByZW50aWNlc2hpcCByZWZvcm1zIHRoZSBDb3VuY2ls4oCZcyB0YXJnZXQgZm9yIGFwcHJlbnRpY2VzIGhhcyBjaGFuZ2VkLiBBcyBhIHB1YmxpYyBzZWN0b3IgYm9keSB3ZSBhcmUgcmVxdWlyZWQgdG8gZGVsaXZlciBjaXJjYSAzNjAgYXBwcmVudGljZXMgcGVyIGFubnVtIGFjcm9zcyBvdXIgb3JnYW5pc2F0aW9uLlxcblxcbkNoYWxsZW5nZXMgYXNzb2NpYXRlZCB3aXRoIGJyaW5naW5nIGluIHRoZSBuZXcgYXJyYW5nZW1lbnRzIOKAkyBpbmNsdWRpbmcgc29tZSBvZiB0aGUga2V5IG5ldyBhcHByZW50aWNlc2hpcCBzdGFuZGFyZHMgbm90IHlldCBiZWluZyBhdmFpbGFibGUsIHRoZSBmdW5kaW5nIGNyaXNpcyBpbiBvdXIgc2Nob29scywgcHJvY3VyZW1lbnQgdGltZWxpbmVzIGFuZCB0aGUgbmVlZCBmb3IgbWFuYWdlcnMgdG8gcmVsZWFzZSB0aGVpciBhcHByZW50aWNlcyBmb3IgMjAlIG9mZiB0aGUgam9iIHRyYWluaW5nIG1lYW4gdGhhdCB3ZSBoYXZlIGEgd2F5IHRvIGdvIHRvIG1lZXQgb3VyIHRhcmdldCBidXQgd2UgYW50aWNpcGF0ZSBhIHJpc2UgaW4gdGhlIHVwdGFrZSBvZiB0cmFpbmluZyBvdmVyIHRoZSBjb3Vyc2Ugb2YgMjAxOC8yMDE5IGFzIG1vcmUgbmV3IFN0YW5kYXJkcyBhcmUgYXBwcm92ZWQgd2hpY2ggd2UgY2FuIGFjdGl2ZWx5IHVzZS5cXG5cXG5JbiBwcmVwYXJhdGlvbiBmb3IgdGhlc2UgZGV2ZWxvcG1lbnRzIHRoZSBMZWFybmluZyAmIERldmVsb3BtZW50IENvbW1pc3Npb25pbmcgdGVhbTpcXG5cXG4qIEhhdmUgbWV0IHdpdGggYWxsIERpcmVjdG9ycyB0byBicmllZiB0aGVtIGFuZCB0aGVpciBtYW5hZ2VycyBvZiB0aGUgb3Bwb3J0dW5pdGllcyB0aGF0IGFyZSBvciB3aWxsIGJlY29tZSBhdmFpbGFibGUgZm9yIHRoZWlyIGRpcmVjdG9yYXRlc1xcbiogSGF2ZSBpZGVudGlmaWVkIGFwcHJlbnRpY2VzaGlwIHRyYWluaW5nIG9wcG9ydHVuaXRpZXMgZm9yIGVhY2ggZGlyZWN0b3JhdGVcXG4qIEhhdmUgbWV0IHdpdGggYWxsIFNjaG9vbHMgYW5kIGEgbnVtYmVyIG9mIEJvYXJkcyBvZiBHb3Zlcm5vcnNcXG4qIElkZW50aWZpZWQgYXBwcm9wcmlhdGUgdHJhaW5pbmcgb3Bwb3J0dW5pdGllcyBmb3IgU2Nob29sc1xcbiogUHJvdmlkZWQgaW5mb3JtYXRpb24gdG8gZGlyZWN0b3JhdGUgSGUgQ29uc3VsdGFudHMgaW4gb3JkZXIgZm9yIHdvcmtmb3JjZSBwbGFubmluZyB0byB0YWtlIHBsYWNlIHRoYXQgZW5jb21wYXNzZXMgdGhlIHRha2UgdXAgb2YgYXBwcmVudGljZXNoaXAgdHJhaW5pbmdcXG4qIEFyZSB3b3JraW5nIHdpdGggQ29tbXVuaWNhdGlvbnMgJiBFbmdhZ2VtZW50IHRvIGRldmVsb3AgYSBwcm9tb3Rpb25hbCBjYW1wYWlnbiBmb3IgYWxsIHN0YWZmIGFuZCBtYW5hZ2VycyBzbyB0aGUgdHJhaW5pbmcgb2ZmZXIgcmVhY2hlcyBldmVyeW9uZS5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIHF1YXJ0ZXJzIGZpZ3VyZXMgcGx1bW1ldGVkIGluIEp1bHkgYW5kIEF1Z3VzdCBhbmQgc3Vic2VxdWVudGx5IGdyZXcgaW4gU2VwdGVtYmVyIHRvIHRoZWlyIGhpZ2hlc3QgbGV2ZWwgZm9yIGFsbW9zdCBhIHllYXIuIFRoZXkgYXJlIHlldCB0byByaXNlIGZ1cnRoZXIgYXMgdGhlIHllYXIgcHJvZ3Jlc3NlcyBhbmQgaXQgaXMgZXh0cmVtZWx5IGxpa2VseSB0aGlzIG1lYXN1cmUgd2lsbCBiZSBtZXQgdGhyb3VnaG91dCB0aGUgeWVhci4gVGhlIENvdW50eSBDb3VuY2lsIGhhcyBiZWVuIHByb2N1cmluZyBBcHByZW50aWNlc2hpcCBUcmFpbmluZyBwcm92aWRlcnMgaW4gb3JkZXIgdG8gc3BlbmQgaXRzIG5ldyBBcHByZW50aWNlc2hpcCBMZXZ5IGZ1bmQgZm9yIEFwcHJlbnRpY2VzaGlwIHRyYWluaW5nIGFuZCB0aGlzIG5ldyB3YXkgb2YgaW52ZXN0bWVudCBpcyBoYXZpbmcgYSBwb3NpdGl2ZSBpbXBhY3Qgb24gb3VyIHRha2UgdXAgb2YgYXBwcmVudGljZXNoaXBzLiBUaGUgZnVuZCBjYW4gYmUgdXNlZCB0byBwYXkgZm9yIGFwcHJlbnRpY2VzaGlwIHRyYWluaW5nIGZvciBleGlzdGluZyBlbXBsb3llZXMgd2hpY2ggc2hvdWxkIHNlZSBhIHJpc2UgaW4gdGhlIG51bWJlciBvZiBleGlzdGluZyBlbXBsb3llZXMgaW4gYm90aCBjb3VuY2lsIGFuZCBzY2hvb2wgc2VydmljZXMgd2hvIHN0dWR5IGEgcHJvZmVzc2lvbmFsIHF1YWxpZmljYXRpb24gdXNpbmcgdGhpcyByb3V0ZS4gTW9yZSBhcHByZW50aWNlc2hpcCB0cmFpbmluZyBwYXRod2F5cyBhcmUgYmVpbmcgZGV2ZWxvcGVkIGFuZCBiZWNvbWluZyBhdmFpbGFibGUgdG8gZW1wbG95ZXJzIHdoaWNoIHdpbGwgYWxzbyBoZWxwIHVzIHRvIGdyb3cgb3VyIGFwcHJlbnRpY2VzaGlwIG9mZmVyIGluIGJvdGggc2Nob29scyBhbmQgY29ycG9yYXRlLiBBbiBPZmZpY2VyIGhhcyBiZWVuIGRlc2lnbmF0ZWQgdG8gd29yayB3aXRoIHNjaG9vbHMgZm9yIGEgeWVhciB0byBlbmNvdXJhZ2UgdGhlaXIgZW5nYWdlbWVudCB3aXRoIGFwcHJlbnRpY2VzaGlwcyB3aGljaCBhaW1zIHRvIHNlZSBhbiBpbmNyZWFzZSBpbiB0aGUgbnVtYmVyIG9mIEFwcHJlbnRpY2VzIHdvcmtpbmcgZm9yIHRoZW0uXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcbihUaGUgY291bnR5IGZpZ3VyZXMsIG5hdGlvbmFsIGRhdGEgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGN1cnJlbnQgcXVhcnRlciBidXQgd2lsbCBiZSBhdmFpbGFibGUgaW4gU2VwdGVtYmVyIC0gcXVhcnRlciAyKVxcblxcblRoZSBjb3VudHkgY291bmNpbOKAmXMgQXBwcmVudGljZXNoaXAgbnVtYmVycyBoYXZlIHJlbWFpbmVkIHN0ZWFkeSBmb3IgdGhpcyBxdWFydGVyIGFuZCBhcmUgYXMgd2UgZXhwZWN0ZWQgd2l0aCBsaXR0bGUgY2hhbmdlLyBncm93dGguIFRoZSBDb3VudHkgQ291bmNpbCBoYXMgYmVlbiBmb2N1c2VkIG9uIGl0cyBwcmVwYXJhdGlvbiBmb3IgdGhlIGFwcHJlbnRpY2VzaGlwIGxldnkgZ28gbGl2ZS4gVGhlc2UgcHJlcGFyYXRpb25zIGluY2x1ZGUgdGhlIHNldC11cCBvZiBhIG5ldyBwcm9jdXJlbWVudCBzeXN0ZW0gZm9yIGFwcHJlbnRpY2VzaGlwIHRyYWluaW5nIGFuZCBhIG5ldyBzdGFmZiBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCBhcHByZW50aWNlc2hpcHMgaW50byB0aGUgZnV0dXJlLiBUaGUgc3RydWN0dXJlIHRoaXMgaW5jbHVkZSBhIHJvbGUgZGVkaWNhdGVkIHRvIHN1cHBvcnRpbmcgc2Nob29scyBpbiB0aGUgY291bnR5IGFzIHRoZSBhcmVhIHdobyBlbXBsb3kgdGhlIGxhcmdlc3QgcGVyY2VudGFnZSBvZiBvdXIgd29ya2ZvcmNlLiBUaGUgbmV3IHByb2N1cmVtZW50IHN5c3RlbSB3ZW50IGxpdmUgYXQgdGhlIGVuZCBvZiBKdW5lIGFuZCB3ZSBoYXZlIHN0YXJ0ZWQgdG8gc3VibWl0IHRlbmRlcnMgZm9yIGFwcHJlbnRpY2VzaGlwIHRyYWluaW5nIHByb3ZpZGVycyB0byBkZWxpdmVyIHRoZSBxdWFsaWZpY2F0aW9ucyB3ZSByZXF1aXJlLiBXZSB3aWxsIGJyaW5nIG5ld3Mgb24gdGhlIHJlc3VsdHMgb2YgdGhpcyBleGVyY2lzZSBpbiB0aGUgbmV4dCBxdWFydGVyIHdoZW4gaXQgaXMgaG9wZWQgb3VyIEFwcHJlbnRpY2UgbnVtYmVycyBhcmUgc3RhcnRpbmcgdG8gaW5jcmVhc2UuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqTm92ZW1iZXIgMjAxNioqXFxuXFxuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cXG5cXG5BcHByZW50aWNlc2hpcCBzdGFydHMgaW4gdGhlIGNvdW50eSBoYXMgaW5jcmVhc2VkIHRoaXMgeWVhciBhbmQgbm93IGV4Y2VlZCB0aGUgcGVhayBvZiAyMDEyLzEzIHdoZW4gd2UgYWNoaWV2ZWQgNSw2MTAgc3RhcnRzLiBUaGUgZm9sbG93aW5nIHR3byB5ZWFycyB3ZXJlIHdlbGwgYmVsb3cgdGhpcyBsZXZlbC4gQ2hpY2hlc3RlciBEaXN0cmljdCBDb3VuY2lsIGhhcyBoYWQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgaW5jcmVhc2UgaW4gc3RhcnRzIGFuZCB1cCBzb21lIDE2LjUlIG9uIGxhc3QgeWVhci4gV29ydGhpbmcgaGFzIHNlZW4gYSBzaWduaWZpY2FudCBkZWNyZWFzZSB3aXRoIDUwIHN0YXJ0cyBsZXNzIHRoYW4gdGhleSBhY2hpZXZlZCBpbiAyMDE0LzE1LiBXZSBoYXZlIHNwb2tlbiB3aXRoIHRoZSBEaXN0cmljdCBDb3VuY2lsIHNvIHRoZXkgYXJlIGF3YXJlIG9mIHRoaXMgYW5kIGNvbnNpZGVyaW5nIHdheXMgb2YgaW5mbHVlbmNpbmcgdGhpcyBwYXR0ZXJuIGluIHRoZSBmdXR1cmUuXFxuXFxuVGhlIEFwcHJlbnRpY2VzaGlwIGxldnkgd2lsbCBiZSBsaXZlIGZyb20gTWF5IDIwMTcgcHJvdmlkaW5nIGEgbmV3IHN5c3RlbSBhbmQgd2F5cyBvZiBlbXBsb3llcnMgYW5kIGxlYXJuaW5nIHByb3ZpZGVycyBhY2Nlc3NpbmcgZnVuZGluZyBmb3IgdGhlaXIgQXBwcmVudGljZXNoaXAgdHJhaW5pbmcuIFRoaXMgbWF5IG1lYW4gdW5jZXJ0YWludHkgYXMgZW1wbG95ZXJzIGxlYXJuIGFuZCBhZGFwdCB0byB0aGUgbmV3IHN5c3RlbSB3aGljaCBtYXkgaW1wYWN0IG9uIHRoZSBzdGFydCBudW1iZXJzIG5leHQgeWVhci4gSG93ZXZlciB0aGUgbG9uZ2VyIHRlcm0gaW50ZW50aW9uIGlzIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgQXBwcmVudGljZXMgaW4gdGhlIGNvdW50eSBhbmQgdGhlIENvdW50eSBDb3VuY2lsIGFuZCBvdXIgRGlzdHJpY3QgYW5kIEJvcm91Z2ggcGFydG5lcnMgd2lsbCBiZSBtaW5kZnVsIG9mIGhvdyB3ZSBjb3VsZCBzdXBwb3J0IGFuZCBjb21tdW5pY2F0ZSB3aXRoIGVtcGxveWVycyB0byBoZWxwIGVuY291cmFnZSB0aGVpciBlbmdhZ2VtZW50LlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIGFwcHJlbnRpY2VzaGlwcyBpbiBXZXN0IFN1c3NleFwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIldlIGFpbSB0byBpbXByb3ZlIHRoZSBudW1iZXIgb2YgdGhlIEFwcHJlbnRpY2VzaGlwcyBpbiBXZXN0IFN1c3NleCBieSA1JSBvciBtb3JlLCB5ZWFyIG9uIHllYXIuXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvOUU2RDZCN0EtQkM2Qi00NDRGLUIyRkYtRjE4NjkwNDcxNEQyXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMDYtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiYXBwcmVudGljZXMiLCJ0YXJnZXRfdHlwZSI6InJlbGF0aXZlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo2MDgwLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6ImhlZzMteTlpNiJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDA2fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcIm1haW50YWluXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIG51bWJlciBvZiBhcHByZW50aWNlcyBpbiBXZXN0IFN1c3NleFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6ZmFsc2UsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiZ29vZFwifSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNi0xM1QxNjoxNDozOS42NTVaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MTg6NTAuNzcxWiIsInZlcnNpb24iOiIyMDE4LTA2LTEzVDE2OjE0OjM5LjY1NVoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoyOTAsImlkIjoicWlkNS0ya2Z0In0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJxNnoyLWF4Y3AifV0sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDYtMTNUMTY6MTQ6NDUuMjI0WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjE4OjUwLjg0OVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNi0xM1QxNjoxNDo0NS4yMjRaIiwiY3JlYXRlZF9ieSI6IjNkcHYtanI4bSJ9LHsiaWQiOiJmaXNuLWdid2ciLCJuYW1lIjoiVW5lbXBsb3ltZW50IHJhdGUgcGVvcGxlIGFnZWQgNTAtNjQiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJvcHRpb25zXCI6e1wicGFyZW50XCI6e1wiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjExNjQsXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkyMixcIl9wYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkzOCxcIl9wYXJlbnRcIjp7XCJvcHRpb25zXCI6e1wicGFyZW50XCI6e1wiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjExNjQsXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkyMixcIl9wYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119LFwibGlzdFwiOltdfX0sXCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MzI5MzksXCJfcGFyZW50XCI6e1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTIyLFwiX3BhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTM4LFwiX3BhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTIyLFwiX3BhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119LFwibGlzdFwiOltdLFwicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIGdvYWwgaXMgdHJhY2tlZCBieSBtZWFzdXJpbmcgdGhlICUgb2YgcGVvcGxlIGFnZWQgNTAtNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipGZWJydWFyeSAyMDE4IFVwZGF0ZSoqXFxuXFxuLSAtIC1cXG5cXG5MYXRlc3QgZmlndXJlcyBmb3IgNTAtNjQgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzRBQkMxOTM2LTBENDYtNDFDNy1BMDM2LTI4NEYxNzMxNDYxNVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyDigJMgSmFudWFyeSAyMDE4KipcXG5cXG5UaGUgdW5lbXBsb3ltZW50IHJhdGUgaXMgZ2VuZXJhbGx5IGNhbGN1bGF0ZWQgYnkgdGFraW5nIHRoZSBudW1iZXIgb2YgcGVvcGxlIHdobyBhcmUgdW5lbXBsb3llZCBhbmQgYXJlIGxvb2tpbmcgZm9yIGEgcGFpZCBqb2IgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBlY29ub21pY2FsbHkgYWN0aXZlIHBvcHVsYXRpb24gaS5lLiB0aGUgcG9wdWxhdGlvbiB3aG8gYXJlIGVpdGhlciBlbXBsb3llZCBvciB1bmVtcGxveWVkIGFuZCBsb29raW5nIGZvciB3b3JrLlxcblxcblRoZXJlIGFyZSB0d28gbWVhc3VyZXMgb2YgdW5lbXBsb3ltZW50LlxcblxcblRoZSBmaXJzdCBpcyB0aGXigJhvZmZpY2lhbOKAmSBlc3RpbWF0ZSB1c2luZyB0aGUgSW50ZXJuYXRpb25hbCBMYWJvdXIgT3JnYW5pc2F0aW9uIChJTE8pIGRlZmluaXRpb24gd2hpY2ggY29uZm9ybXMgdG8gdGhlIGludGVybmF0aW9uYWwgZGVmaW5pdGlvbiBvZiB1bmVtcGxveW1lbnQsIHRoZSBtZWFzdXJlIGlzIGJhc2VkIG9uIGEgcXVhcnRlcmx5IHNhbXBsZSBzdXJ2ZXkgb2YgaG91c2Vob2xkcyB1bmRlcnRha2VuIGJ5IE9OUyBhcyBwYXJ0IG9mIHRoZSBBbm51YWwgUG9wdWxhdGlvbiBTdXJ2ZXkgKEFQUykuIFRoZSB1bmVtcGxveW1lbnQgcmF0ZXMgZnJvbSB0aGUgQVBTIGhvd2V2ZXIgYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVGhlIHNlY29uZCBtZWFzdXJlLCB0aGUgY2xhaW1hbnQgY291bnQsIHRlbmRzIHRvIGJlIGEgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LiBUaGUgZGF0YSBpcyBwdWJsaXNoZWQgbW9udGhseSBhbmQgaXMgaW5kaWNhdGl2ZSBvZiByZWxhdGl2ZSB1bmVtcGxveW1lbnQgbGV2ZWxzIGluIHRoZSBsb2NhbCBhcmVhLlxcblxcbkhvd2V2ZXIsIHRoZSBjbGFpbWFudCBjb3VudCBoYXMgdW5kZXJnb25lIHN1YnN0YW50aWFsIGNoYW5nZSBvdmVyIHJlY2VudCB5ZWFycy4gSW4gMjAxMyBVbml2ZXJzYWwgQ3JlZGl0IHdhcyBpbnRyb2R1Y2VkIGFuZCByb2xsZWQgb3V0IG92ZXIgYSBwZXJpb2Qgb2YgeWVhcnMgYW5kIHdhcyBpbXBsZW1lbnRlZCBpbiBXZXN0IFN1c3NleCBkdXJpbmcgMjAxNS4gVW5pdmVyc2FsIENyZWRpdCBpcyBhIHNpbmdsZSBtb250aGx5IHBheW1lbnQgZm9yIHBlb3BsZSBpbiBvciBvdXQgb2Ygd29yaywgd2hpY2ggbWVyZ2VzIHRvZ2V0aGVyIHNvbWUgb2YgdGhlIGV4aXN0aW5nIG1lYW5zLXRlc3RlZCBiZW5lZml0cyBhbmQgdGF4IGNyZWRpdHMgaW5jbHVkaW5nIEluY29tZS1iYXNlZCBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYW5kIGluY29tZS1yZWxhdGVkIEVtcGxveW1lbnQgYW5kIFN1cHBvcnQgQWxsb3dhbmNlLlxcblxcblRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCBiZWNhdXNlIHRoZXkgYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBiZW5lZml0cyBwcmluY2lwYWxseSBmb3IgdGhlIHJlYXNvbiBvZiBiZWluZyB1bmVtcGxveWVkLiBIb3dldmVyLCB0aGUgcmF0ZXMgYXJlIG5vdCBicm9rZW4gZG93biBpbnRvIGRpZmZlcmVudCBhZ2UgZ3JvdXBzLlxcblxcblRoZSBjb3VudCBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIExvb2tpbmcgYXQgdGhlIG51bWJlcnMgaG93ZXZlciwgaXQgZG9lcyBhcHBlYXIgdGhhdCB0aGUgbnVtYmVycyBvZiBwZXJzb25zIGFnZWQgMTYrIGFzIHdlbGwgYXMgdGhvc2UgcGVvcGxlIHdpdGhpbiB0aGUgNTAtNjQgYWdlIGJyYWNrZXQgY2xhaW1pbmcgZWl0aGVyIHVuaXZlcnNhbCBjcmVkaXQgb3IgSm9iIFNlZWtlciBBbGxvd2FuY2UgaGFzIGluY3JlYXNlZCBvdmVyIHRoZSB5ZWFyIE5vdmVtYmVyIDIwMTctTm92IDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0QxREJCNTQ1LTBFNzAtNDgwNi1BRUY0LTcwNzZBMEU0Q0I2NlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgdGFibGUgYmVsb3cgc2hvd3MgdGhlIG51bWJlciBvZiA1MC02NCB5ZWFyIG9sZHMgd2hvIHdlcmUgY2xhaW1pbmcgb25seSBKU0EgdXAgdG8gTm92ZW1iZXIgMjAxNywgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgYWdlZCByZXNpZGVudHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzdBNkY3RTg4LTlDRUYtNDRFNy1CRkY4LUE4NDJEOEYwODg3MFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHVuZW1wbG95bWVudCByYXRlIGlzIGdlbmVyYWxseSBjYWxjdWxhdGVkIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgZWNvbm9taWNhbGx5IGFjdGl2ZSBwb3B1bGF0aW9uIGkuZS4gdGhlIHBvcHVsYXRpb24gd2hvIGFyZSBlaXRoZXIgZW1wbG95ZWQgb3IgdW5lbXBsb3llZCAoaS5lIHRob3NlIHdobyBhcmUgb3V0IG9mIHdvcmsgYnV0IGFjdGl2ZWx5IHNlZWtpbmcgYW5kIGF2YWlsYWJsZSB0byB3b3JrIOKAkyBpdCBkb2VzIG5vdCBpbmNsdWRlIHJldGlyZWQpLlxcblxcblRoZXJlIGFyZSB0d28gbWVhc3VyZXMgb2YgdW5lbXBsb3ltZW50LlxcblxcblRoZSBmaXJzdCBpcyB0aGXigJggb2ZmaWNpYWzigJkgZXN0aW1hdGUgdXNpbmcgdGhlIEludGVybmF0aW9uYWwgTGFib3VyIE9yZ2FuaXNhdGlvbiAoSUxPKSBkZWZpbml0aW9uIHdoaWNoIGNvbmZvcm1zIHRvIHRoZSBpbnRlcm5hdGlvbmFsIGRlZmluaXRpb24gb2YgdW5lbXBsb3ltZW50LCB0aGUgbWVhc3VyZSBpcyBiYXNlZCBvbiBhIHF1YXJ0ZXJseSBzYW1wbGUgc3VydmV5IG9mIGhvdXNlaG9sZHMgdW5kZXJ0YWtlbiBieSBPTlMgYXMgcGFydCBvZiB0aGUgQW5udWFsIFBvcHVsYXRpb24gU3VydmV5IChBUFMpLiBUaGUgbGF0ZXN0IGZpZ3VyZXMgaGF2ZSBiZWVuIHJlcG9ydGVkIGluIHRoZSBwcmV2aW91cyBxdWFydGVyLCB0aG91Z2ggYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVGhlIHNlY29uZCBtZWFzdXJlLCB0aGUgY2xhaW1hbnQgY291bnQsIHRlbmRzIHRvIGJlIGEgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LlxcblxcblRoZSBkYXRhIGlzIHB1Ymxpc2hlZCBtb250aGx5IGFuZCBpcyBpbmRpY2F0aXZlIG9mIHJlbGF0aXZlIHVuZW1wbG95bWVudCBsZXZlbHMgaW4gdGhlIGxvY2FsIGFyZWEuIFRoZSBjbGFpbWFudCBjb3VudCBoYXMgdW5kZXJnb25lIHN1YnN0YW50aWFsIGNoYW5nZSBvdmVyIHJlY2VudCB5ZWFycy4gSW4gMjAxMyBVbml2ZXJzYWwgQ3JlZGl0IHdhcyBpbnRyb2R1Y2VkIGFuZCByb2xsZWQgb3V0IG92ZXIgYSBwZXJpb2Qgb2YgeWVhcnMgYW5kIHdhcyBpbXBsZW1lbnRlZCBpbiBXZXN0IFN1c3NleCBkdXJpbmcgMjAxNS4gVW5pdmVyc2FsIENyZWRpdCBpcyBhIHNpbmdsZSBtb250aGx5IHBheW1lbnQgZm9yIHBlb3BsZSBpbiBvciBvdXQgb2Ygd29yaywgd2hpY2ggbWVyZ2VzIHRvZ2V0aGVyIHNvbWUgb2YgdGhlIGV4aXN0aW5nIG1lYW5zLXRlc3RlZCBiZW5lZml0cyBhbmQgdGF4IGNyZWRpdHMgaW5jbHVkaW5nIEluY29tZS1iYXNlZCBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYW5kIGluY29tZS1yZWxhdGVkIEVtcGxveW1lbnQgYW5kIFN1cHBvcnQgQWxsb3dhbmNlLlxcblxcblRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCBiZWNhdXNlIHRoZXkgYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBiZW5lZml0cyBwcmluY2lwYWxseSBmb3IgdGhlIHJlYXNvbiBvZiBiZWluZyB1bmVtcGxveWVkLiBUaGUgdG90YWwgbnVtYmVycyBvZiBjbGFpbWFudHMgYW5kIHJhdGVzIGFzIGEgcHJvcG9ydGlvbiBvZiByZXNpZGVudHMgYWdlZCAxNi02NCBhcmUgaW4gdGhlIHRhYmxlIGJlbG93OlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yNDJFRDI5NS1BQUY5LTRBRDYtQTExNS05MjEwNDgwQzQxNjZcIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIGRhdGEgc2V0IGhvd2V2ZXIsIGRvZXMgbm90IGdpdmUgYW4gdW5lbXBsb3ltZW50IHJhdGUgYnkgYWdlIGJyZWFrZG93bi4gVGhlIGNvdW50IG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBpcyBzdGlsbCBhdmFpbGFibGUgYnkgYWdlIG9mIGNsYWltYW50IGFuZCBkdXJhdGlvbiBvZiBjbGFpbWluZy5cXG5cXG4gXFxuXFxuVGhlIHRhYmxlIG9uIHRoZSByaWdodCBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gd2VyZSBjbGFpbWluZyBKU0EgaW4gQXVndXN0IDIwMTcsIGFuZCB0aGUgcmF0ZSBpLmUuIHRoZSBudW1iZXIgb2YgdGhvc2UgY2xhaW1pbmcgYXMgYSBwZXJjZW50YWdlIG9mIDUwLTY0IHJlc2lkZW50cy5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yN0EwMUQ2NS01NzAzLTQ1MjktODkzRC1FMDU1N0M0RDVENDNcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHVuZW1wbG95bWVudCByYXRlIGlzIGdlbmVyYWxseSBjYWxjdWxhdGVkIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgZWNvbm9taWNhbGx5IGFjdGl2ZSBwb3B1bGF0aW9uIGkuZS4gdGhlIHBvcHVsYXRpb24gd2hvIGFyZSBlaXRoZXIgZW1wbG95ZWQgb3IgdW5lbXBsb3llZCAoaS5lIHRob3NlIHdobyBhcmUgb3V0IG9mIHdvcmsgYnV0IGFjdGl2ZWx5IHNlZWtpbmcgYW5kIGF2YWlsYWJsZSB0byB3b3JrIOKAkyBpdCBkb2VzIG5vdCBpbmNsdWRlIHJldGlyZWQpLiBUaGVyZSBhcmUgdHdvIG1lYXN1cmVzIG9mIHVuZW1wbG95bWVudC4gVGhlIGZpcnN0IGlzIHRoZSDigJhvZmZpY2lhbOKAmSBlc3RpbWF0ZSB1c2luZyB0aGUgSW50ZXJuYXRpb25hbCBMYWJvdXIgT3JnYW5pc2F0aW9uIChJTE8pIGRlZmluaXRpb24gd2hpY2ggY29uZm9ybXMgdG8gdGhlIGludGVybmF0aW9uYWwgZGVmaW5pdGlvbiBvZiB1bmVtcGxveW1lbnQsIHRoZSBtZWFzdXJlIGlzIGJhc2VkIG9uIGEgcXVhcnRlcmx5IHNhbXBsZSBzdXJ2ZXkgb2YgaG91c2Vob2xkcyB1bmRlcnRha2VuIGJ5IE9OUyBhcyBwYXJ0IG9mIHRoZSBBbm51YWwgUG9wdWxhdGlvbiBTdXJ2ZXkgKEFQUykuIEFzIHRoZSB1bmVtcGxveWVkIGZvcm0gYSBzbWFsbCBwZXJjZW50YWdlIG9mIHRoZSBlY29ub21pY2FsbHkgYWN0aXZlIHBvcHVsYXRpb24sIGFuZCBhcyB1bmVtcGxveW1lbnQgZXN0aW1hdGVzIGZvciBsb2NhbCBhdXRob3JpdHkgZ2VvZ3JhcGhpZXMgYXJlIGJhc2VkIG9uIHZlcnkgc21hbGwgc3VydmV5IHNhbXBsZXMsIG1vZGVsLWJhc2VkIGVzdGltYXRlcyBoYXZlIGJlZW4gZGV2ZWxvcGVkIHRoYXQgcHJvdmlkZSBiZXR0ZXIgZXN0aW1hdGVzIG9mIHRvdGFsIHVuZW1wbG95ZWQgZm9yIGxvY2FsIGF1dGhvcml0aWVzLiBUaGVzZSBlc3RpbWF0ZXMgYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVW5lbXBsb3ltZW50IGNvdW50IGFuZCByYXRlcyB1bmRlciB0aGlzIGRlZmluaXRpb24gZm9yIFdlc3QgU3Vzc2V4IGFyZTpcXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOUZGNDA2NDAtODhBQS00MkE1LUI2M0QtRjVFODJFQUE4Njg3XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBzZWNvbmQgbWVhc3VyZSBpcyB0aGUgY2xhaW1hbnQgY291bnQuIFRoaXMgdGVuZHMgdG8gYmUgdGhlIGxvd2VyIG1lYXN1cmUgb2YgdGhlIHR3byBiZWNhdXNlIHNvbWUgdW5lbXBsb3llZCBhcmUgbm90IGVudGl0bGVkIHRvIGNsYWltIGJlbmVmaXRzIG9mIGFueSBzb3J0IG9yIGNob29zZSBub3QgdG8gZG8gc28uIEl0IGlzIHNlZW4gYnkgc29tZSBhcyBtb3JlIG9mIGEgd2VsZmFyZSBjb3VudCBhbmQgbm90IHN0cmljdGx5IGFuIHVuZW1wbG95bWVudCBjb3VudC4gVGhlIGRhdGEgaXMgcHVibGlzaGVkIG1vbnRobHkgYW5kIGlzIGluZGljYXRpdmUgb2YgcmVsYXRpdmUgdW5lbXBsb3ltZW50IGxldmVscyBpbiB0aGUgbG9jYWwgYXJlYS4gVGhlIGNsYWltYW50IGNvdW50IGhhcyB1bmRlcmdvbmUgc3Vic3RhbnRpYWwgY2hhbmdlIG92ZXIgcmVjZW50IHllYXJzLiBJbiAyMDEzIFVuaXZlcnNhbCBDcmVkaXQgd2FzIGludHJvZHVjZWQgYW5kIHJvbGxlZCBvdXQgb3ZlciBhIHBlcmlvZCBvZiB5ZWFycyBhbmQgd2FzIGltcGxlbWVudGVkIGluIFdlc3QgU3Vzc2V4IGR1cmluZyAyMDE1LiBVbml2ZXJzYWwgQ3JlZGl0IGlzIGEgc2luZ2xlIG1vbnRobHkgcGF5bWVudCBmb3IgcGVvcGxlIGluIG9yIG91dCBvZiB3b3JrLCB3aGljaCBtZXJnZXMgdG9nZXRoZXIgc29tZSBvZiB0aGUgZXhpc3RpbmcgbWVhbnMtdGVzdGVkIGJlbmVmaXRzIGFuZCB0YXggY3JlZGl0cyBpbmNsdWRpbmcgSW5jb21lLWJhc2VkIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhbmQgaW5jb21lLXJlbGF0ZWQgRW1wbG95bWVudCBhbmQgU3VwcG9ydCBBbGxvd2FuY2UuXFxuXFxuVGhlcmUgaXMgYW4gZXhwZXJpbWVudGFsIGRhdGEgc2VyaWVzIGdpdmluZyBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBwbHVzIHRob3NlIHdobyBjbGFpbSBVbml2ZXJzYWwgQ3JlZGl0IGJlY2F1c2UgdGhleSBhcmUgb3V0IG9mIHdvcmssIGl0IHJlcGxhY2VzIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhcyB0aGUgaGVhZGxpbmUgaW5kaWNhdG9yIG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIGJlbmVmaXRzIHByaW5jaXBhbGx5IGZvciB0aGUgcmVhc29uIG9mIGJlaW5nIHVuZW1wbG95ZWQuIFRoZSB0b3RhbCBudW1iZXJzIG9mIGNsYWltYW50cywgYW5kIHJhdGVzIGFzIGEgcHJvcG9ydGlvbiBvZiByZXNpZGVudHMgYWdlZCAxNi02NCBhcmUgaW4gdGhlIHRhYmxlIGJlbG93OlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8zRERCNDQ0MC1BNzJELTQ2REUtOTk0MC1CNjVFNjEyRjBBNThcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhpcyBkYXRhIHNldCBob3dldmVyLCBkb2VzIG5vdCBnaXZlIGFuIHVuZW1wbG95bWVudCByYXRlIGJ5IGFnZSBicmVha2Rvd24uIFRoZSBjb3VudCBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy84RDhFRDMwOS00NkFDLTQxMTQtOEFEQi04Q0EyOEJFNjM0RjRcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgcGVyY2VudGFnZSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBqb2JzZWVrZXJzIGFsbG93YW5jZSAoSlNBKSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLiBUaGUgSlNBIGNsYWltYW50IGRhdGEgaXMgcHVibGlzaGVkIG1vbnRobHksIHdpdGggdGhlIGxhdGVzdCBkYXRhIGF2YWlsYWJsZSBmb3IgRmVicnVhcnkgKGFzIGF0IDV0aCBBcHJpbCkuXFxuXFxuVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSB0b3RhbCBudW1iZXJzIGFuZCByYXRlIG9mIEpTQSBjbGFpbWFudHMgYWdlZCA1MC02NCB5ZWFycywgdGhlIHJhdGUgaXMgY2FsY3VsYXRlZCBhcyBhIHByb3BvcnRpb24gb2YgcmVzaWRlbnQgcG9wdWxhdGlvbiBpbiB0aGF0IGFnZSBncm91cC4gVGhlIHByb3BvcnRpb24gaXMgbG93ZXN0IGluIE1pZCBTdXNzZXggYW5kIEhvcnNoYW0sIGFuZCBoaWdoZXN0IGluIENyYXdsZXkg4oCTIHBvc3NpYmx5IGEgcmVmbGVjdGlvbiBvZiB0aGUgeW91bmdlciBhZ2VkIHBvcHVsYXRpb24gaW4gQ3Jhd2xleSBCb3JvdWdoIGNvbXBhcmVkIHdpdGggb3RoZXIgYXJlYXMgb2YgdGhlIGNvdW50eS4gVGhlIHJhdGUgZm9yIFdlc3QgU3Vzc2V4IGNvbnRpbnVlcyB0byBiZSBsb3dlciB0aGFuIHJlZ2lvbmFsbHkgb3IgbmF0aW9uYWxseSwgYW5kIHRoZSBudW1iZXJzIG9mIEpTQSBjbGFpbWFudHMgb3ZlciB0aGUgeWVhciBGZWJydWFyeSAyMDE2LTIwMTcgaGF2ZSBmYWxsZW4gYnkgMi40JSwgYSBncmVhdGVyIGRlY3JlYXNlIHRoYW4gcmVnaW9uYWxseS4gSG9yc2hhbSwgaG93ZXZlciwgaGFzIHNlZW4gYXJpc2UgaW4gdGhlIG51bWJlciBvZiBjbGFpbWFudHMgaW4gdGhpcyBhZ2UgYnJhY2tldC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQjYxQTk5OTktQTJCOC00MDQyLUExQTYtRDRGMkRFQTVDQTlFXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBjaGFydCBiZWxvdyBzaG93cyB0aGF0IFdlc3QgU3Vzc2V4IGhhcyBjb25zaXN0ZW50bHkgaGFkIGEgbG93ZXIgcmF0ZSBvZiBKU0EgY2xhaW1hbnRzIGluIHRoaXMgYWdlIGJyYWNrZXQgY29tcGFyZWQgd2l0aCB0aGUgcmVnaW9uIG9yIGluIEVuZ2xhbmQgb3ZlciB0aGUgdGhpcnRlZW4gbW9udGhzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CRTczNTgxQS01MDQ0LTRCRkEtOEZDOS1GMjRDMjgxQTdFMzFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVW5pdmVyc2FsIENyZWRpdCBDbGFpbWFudHMgaG93ZXZlciwgcm9sbGVkIG91dCBpbiB0aGUgQ291bnR5IGR1cmluZyAyMDE1IGlzIGEgbW9yZSBjb21wcmVoZW5zaXZlIG1lYXN1cmUgb2YgdGhlIGNsYWltYW50IGNvdW50LiBVbml2ZXJzYWwgQ3JlZGl0IGlzIGEgc2luZ2xlIG1vbnRobHkgcGF5bWVudCBmb3IgcGVvcGxlIGluIG9yIG91dCBvZiB3b3JrLCB3aGljaCBtZXJnZXMgdG9nZXRoZXIgc29tZSBvZiB0aGUgZXhpc3RpbmcgbWVhbnMtdGVzdGVkIGJlbmVmaXRzIGFuZCB0YXggY3JlZGl0cyBpbmNsdWRpbmcgaW5jb21lLWJhc2VkIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhbmQgaW5jb21lLXJlbGF0ZWQgRW1wbG95bWVudCBhbmQgU3VwcG9ydCBBbGxvd2FuY2UuIFRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCB3aG8gYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG8gcGVvcGxlIGNsYWltaW5nIGJlbmVmaXRzIHByaW5jaXBhbGx5IGZvciB0aGUgcmVhc29uIG9mIGJlaW5nIHVuZW1wbG95ZWQuIFRoaXMgZGF0YSBzZXQgZ2l2ZXMgYW4gb3Bwb3J0dW5pdHkgdG8gY29tcGFyZSB0aGUgbnVtYmVycyBvZiB1bml2ZXJzYWwgY3JlZGl0IGNsYWltYW50cyB3aXRoIEpTQSBjbGFpbWFudHMsIGFuZCB3aGlsc3QgdGhlIGRhdGEgc2V0IGRvZXMgbm90IGluY2x1ZGUgcmF0ZXMsYnkgdXNpbmcgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gaW4gdGhpcyBhZ2UgZ3JvdXAgZnJvbSB0aGUgSlNBIGNsYWltYW50IHJhdGUgd2UgY2FuIG1ha2UgYW4gZXN0aW1hdGUgYXMgdG8gdGhlIHJhdGVzIGNsYWltaW5nIHVuaXZlcnNhbCBjcmVkaXQg4oCTIGFzIHNob3duIGluIHRoZSB0YWJsZSBiZWxvdy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNTM4NkJFOEEtRjE0OS00QkI5LThBMUMtQTA0QkJDMjdEQ0M2XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNioqXFxuXFxuKioqKlxcblxcblRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgJSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLiBGb3IgV2VzdCBTdXNzZXggdGhpcyBpcyBjdXJyZW50bHkgMC43JS5cXG5cXG5DbGFpbWFudCBjb3VudCByYXRlcyBhcmUgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLiBUaGUgcHJvcG9ydGlvbiBpcyBsb3dlc3QgaW4gTWlkIFN1c3NleCBhbmQgaGlnaGVzdCBpbiBDcmF3bGV5LiBBbGwgbG9jYWwgYXV0aG9yaXRpZXMgKFdlc3QgU3Vzc2V4IGRpc3RyaWN0cy9ib3JvdWdocykgaGF2ZSBhIGxvd2VyIHByb3BvcnRpb24gb2YgY2xhaW1hbnRzIGFnZWQgNTAtNjQgeWVhcnMgdGhhbiB0aGUgbmF0aW9uYWwgZmlndXJlIG9mIDEuMiUgYW5kIG9ubHkgQWR1ciBhbmQgQ3Jhd2xleSBoYXMgYSBoaWdoZXIgcmF0ZSB0aGFuIHRoZSBTb3V0aCBFYXN0IGZpZ3VyZSBvZiAwLjglLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yMUU1NTkzQS01RkMxLTQ5QUItQTA0My0xNTIyQTZFNjA3MEFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlcmUgaXMgYSBzaW1pbGFyIHBpY3R1cmUgZm9yIHRoZSAxNi02NCBhZ2UgcmFuZ2UgYXMgZGV0YWlsZWQgaW4gdGhlIHRhYmxlIGJlbG93OlwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy80MkM4NTI2Qi1EQ0UyLTQ4NDEtODEzOS05N0M1Mjc2MDlEMjNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG4qKlRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgJSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLioqXFxuXFxuQWdlZCAxNi02NCBiZW5jaG1hcmtpbmc6IFRoaXMgaXMgdGhlIHBlcmNlbnRhZ2Ugb2YgcGVvcGxlIGFnZWQgMTYgdG8gNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZS4gV2VzdCBTdXNzZXggY3VycmVudGx5IHN0YW5kcyBhdCAwLjclLCB0aGlzIGNvbXBhcmVzIGZhdm91cmFibHkgd2l0aCB0aGUgYXZlcmFnZSBmb3IgdGhlIFNvdXRoIEVhc3QgMC44JSBhbmQgMS4yJSBmb3IgRW5nbGFuZC5cXG5cXG5UaGUgdW5lbXBsb3ltZW50IHJhdGUgaXMgY2FsY3VsYXRlZCBhcyBhIHByb3BvcnRpb24gb2YgdGhlIGVjb25vbWljYWxseSBhY3RpdmUgcG9wdWxhdGlvbjsgZWNvbm9taWNhbGx5IGFjdGl2ZSBwZXJzb25zIGJlaW5nIHRob3NlIHdobyBhcmUgZWl0aGVyIGVtcGxveWVkIG9yIHVuZW1wbG95ZWQgKGkuZS4gZG9lcyBub3QgaW5jbHVkZSByZXRpcmVkKS4gVGhlcmUgYXJlIHR3byBtZWFzdXJlcyBvZiB1bmVtcGxveW1lbnQ7IHRoZSBmaXJzdCBpcyB0aGUg4oCYb2ZmaWNpYWzigJkgZXN0aW1hdGUgdXNpbmcgdGhlIEludGVybmF0aW9uYWwgTGFib3VyIE9yZ2FuaXNhdGlvbiAoSUxPKSBkZWZpbml0aW9uIHdoaWNoIGNvbmZvcm1zIHRvIHRoZSBpbnRlcm5hdGlvbmFsIGRlZmluaXRpb24gb2YgdW5lbXBsb3ltZW50LCB0aGUgbWVhc3VyZSBpcyBiYXNlZCBvbiBhIHF1YXJ0ZXJseSBzYW1wbGUgc3VydmV5IG9mIGhvdXNlaG9sZHMgdW5kZXJ0YWtlbiBieSBPTlMgYXMgcGFydCBvZiB0aGUgQW5udWFsIFBvcHVsYXRpb24gU3VydmV5IChBUFMpLiBIb3dldmVyLCBhcyB1bmVtcGxveWVkIGZvcm0gYSBzbWFsbCBwZXJjZW50YWdlIG9mIHRoZSBwb3B1bGF0aW9uIGFuZCBhcyB1bmVtcGxveWVkIGVzdGltYXRlcyB3aXRoaW4gbG9jYWwgYXV0aG9yaXRpZXMgYXJlIGJhc2VkIG9uIHZlcnkgc21hbGwgc3VydmV5IHNhbXBsZXMgbW9kZWwtYmFzZWQgZXN0aW1hdGVzIGhhdmUgYmVlbiBkZXZlbG9wZWQgdGhhdCBwcm92aWRlIGJldHRlciBlc3RpbWF0ZXMgb2YgdG90YWwgdW5lbXBsb3llZCBmb3IgbG9jYWwgYXV0aG9yaXRpZXMsIGJ1dCB0aGVzZSBlc3RpbWF0ZXMgYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVGhlIHNlY29uZCBtZWFzdXJlIGlzIHRoZSBjbGFpbWFudCBjb3VudC4gVGhpcyB0ZW5kcyB0byBiZSB0aGUgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LiBUaGUgZGF0YSBpcyBwdWJsaXNoZWQgbW9udGhseSBhbmQgaXMgaW5kaWNhdGl2ZSBvZiByZWxhdGl2ZSB1bmVtcGxveW1lbnQgbGV2ZWxzIGluIHRoZSBsb2NhbCBhcmVhLiBUaGUgY2xhaW1hbnQgY291bnQgaGFzIHVuZGVyZ29uZSBzdWJzdGFudGlhbCBjaGFuZ2Ugb3ZlciByZWNlbnQgeWVhcnMuIEluIDIwMTMgVW5pdmVyc2FsIENyZWRpdCB3YXMgaW50cm9kdWNlZCBhbmQgcm9sbGVkIG91dCBvdmVyIGEgcGVyaW9kIG9mIHllYXJzIGFuZCB3YXMgaW1wbGVtZW50ZWQgaW4gV2VzdCBTdXNzZXggZHVyaW5nIDIwMTUuIFVuaXZlcnNhbCBDcmVkaXQgaXMgYSBzaW5nbGUgbW9udGhseSBwYXltZW50IGZvciBwZW9wbGUgaW4gb3Igb3V0IG9mIHdvcmssIHdoaWNoIG1lcmdlcyB0b2dldGhlciBzb21lIG9mIHRoZSBleGlzdGluZyBtZWFucy10ZXN0ZWQgYmVuZWZpdHMgYW5kIHRheCBjcmVkaXRzIGluY2x1ZGluZyBJbmNvbWUtYmFzZWQgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFuZCBpbmNvbWUtcmVsYXRlZCBFbXBsb3ltZW50IGFuZCBTdXBwb3J0IEFsbG93YW5jZS5cXG5cXG5UaGVyZSBpcyBhbiBleHBlcmltZW50YWwgZGF0YSBzZXJpZXMgZ2l2aW5nIGEgY291bnQgb2YgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIHBsdXMgdGhvc2Ugd2hvIGNsYWltIFVuaXZlcnNhbCBDcmVkaXQgd2hvIGFyZSBvdXQgb2Ygd29yaywgaXQgcmVwbGFjZXMgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFzIHRoZSBoZWFkbGluZSBpbmRpY2F0b3Igb2YgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgYmVuZWZpdHMgcHJpbmNpcGFsbHkgZm9yIHRoZSByZWFzb24gb2YgYmVpbmcgdW5lbXBsb3llZC4gVGhpcyBkYXRhIHNldCBob3dldmVyLCBkb2VzIG5vdCBnaXZlIGFuIHVuZW1wbG95bWVudCByYXRlIGJ5IGFnZSBicmVha2Rvd24uIFRoZSBjb3VudCBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8xNjgwRjBFNi0zNjc0LTRDODgtODdDMS1DQUJGOUNCQUUzRjdcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuQ2xhaW1hbnQgY291bnQgcmF0ZXMgYXJlIGF2YWlsYWJsZSBieSBhZ2Ugb2YgY2xhaW1hbnQgYW5kIGR1cmF0aW9uIG9mIGNsYWltaW5nLiBUaGUgdGFibGUgYmVsb3cgc2hvd3MgdGhlIG51bWJlciBvZiA1MC02NCB5ZWFyIG9sZHMgd2hvIGFyZSBjbGFpbWluZyBKU0EsIGFuZCB0aGUgcmF0ZSBpLmUuIHRoZSBudW1iZXIgb2YgdGhvc2UgY2xhaW1pbmcgYXMgYSBwZXJjZW50YWdlIG9mIDUwLTY0IHJlc2lkZW50cy4gVGhlIHByb3BvcnRpb24gaXMgbG93ZXN0IGluIE1pZCBTdXNzZXggYW5kIGhpZ2hlc3QgaW4gQ3Jhd2xleS4gQWxsIGxvY2FsIGF1dGhvcml0aWVzIChXZXN0IFN1c3NleCBkaXN0cmljdHMvYm9yb3VnaHMpIGhhdmUgYSBsb3dlciBwcm9wb3J0aW9uIG9mIGNsYWltYW50cyBhZ2VkIDUwLTY0IHllYXJzIHRoYW4gbmF0aW9uYWxseSBhbmQgb25seSBDcmF3bGV5IGhhcyBhIGhpZ2hlciByYXRlIHRoYW4gdGhlIFNvdXRoIEVhc3QgZmlndXJlIChhbHRob3VnaCBDcmF3bGV5J3MgZmlndXJlIGhhcyByZWR1Y2VkIGJ5IDAuMiUpLlxcblxcbldoYXQgd2lsbCBoYXBwZW4gdG8gdGhpcyBtZWFzdXJlLCBpbiByZXNwZWN0IG9mIHRoZSBuYXRpb25hbC9yZWdpb25hbC9sb2NhbCBlY29ub215LCBnaXZlbiB0aGUgRVUgcmVmZXJlbmR1bSByZXN1bHQsIGlzIHN0aWxsIHRvIGJlIGRldGVybWluZWQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzA1MDg3RDQ0LTVDMEItNEZGMC1CNjA2LTlDM0I2N0M4MDBBNVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9FMEUyN0MzMy01OUE0LTQwRDEtQjgwQi0yOUYyODFEMTY1QjZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE2KipcXG5cXG4tIC0gLVxcblxcblNpbmNlIE9jdG9iZXIgMTk5NiB0aGUgY2xhaW1hbnQgY291bnQgaGFzIGJlZW4gZGVyaXZlZCBmcm9tIHRoZSBudW1iZXJzIG9mIEpvYnNlZWtlcuKAmXMgQWxsb3dhbmNlIChKU0EpIENsYWltYW50cyByZWNvcmRlZCBieSBKb2IgQ2VudHJlIFBsdXMsIGl0IGlzIGNvbnRpbnVlZCB0byBiZSBwdWJsaXNoZWQgbW9udGhseS4gSXQgaXMgYSBuYXJyb3dlciBtZWFzdXJlIHRoYW4gdGhlIGNvdW50IG9mIHVuZW1wbG95bWVudCBmcm9tIHRoZSBOYXRpb25hbCBTdGF0aXN0aWNzIExhYm91ciBGb3JjZSBTdXJ2ZXkgd2hpY2ggaXMgdGFrZW4gZnJvbSBhIGNvbnRpbnVvdXMgc3VydmV5IHRoYXQgT2ZmaWNlIGZvciBOYXRpb25hbCBTdGF0aXN0aWNzIChPTlMpIHVzZXMgdG8gbWVhc3VyZSBlY29ub21pYyBhY3Rpdml0eSBuYXRpb25hbGx5LiBUbyBjb3VudCBhcyB1bmVtcGxveWVkIHBlb3BsZSBoYXZlIHRvIHNheSB0aGV5IGFyZSBub3Qgd29ya2luZywgYXJlIGF2YWlsYWJsZSBmb3Igd29yayBhbmQgaGF2ZSBlaXRoZXIgbG9va2VkIGZvciB3b3JrIGluIHRoZSBwYXN0IGZvdXIgd2Vla3Mgb3IgYXJlIGF3YWl0aW5nIHRvIHN0YXJ0IGEgbmV3IGpvYiB0aGV5IGhhdmUgYWxyZWFkeSBvYnRhaW5lZC4gU29tZW9uZSB3aG8gaXMgb3V0IG9mIHdvcmsgYnV0IGRvZXNu4oCZdCBtZWV0IHRoZXNlIGNyaXRlcmlhIGNvdW50cyBhcyBlY29ub21pY2FsbHkgaW5hY3RpdmUuIFRoZSBjbGFpbWFudCBjb3VudCBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoZSBsaW1pdGF0aW9ucyBvZiBzYW1wbGUgc2l6ZSBhbmQgc2FtcGxpbmcgZnJhbWUuIEhvd2V2ZXIsIG1hbnkgcGVvcGxlIHdobyBhcmUgb3V0IG9mIHdvcmsgYXJlIG5vdCBuZWNlc3NhcmlseSBlbGlnaWJsZSBmb3IgSlNBIGFuZCB0aGVyZWZvcmUgaXQgZ2l2ZXMgYSBtdWNoIGxvd2VyIGZpZ3VyZSBvZiB1bmVtcGxveWVkIHRoYW4gdGhhdCBmcm9tIHRoZSBMYWJvdXIgRm9yY2UgU3VydmV5LlxcblxcblRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgdG90YWwgbnVtYmVyIG9mIEpTQSBjbGFpbWFudHMgYW5kIHRoZSB1bmVtcGxveW1lbnQgcmF0ZSBmb3IgRmVicnVhcnkgMjAxNSDigJMgMjAxNiAoRmVicnVhcnkgMjAxNiBpcyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBkYXRhIChjbGFpbWFudHMgYXMgYSBwZXJjZW50YWdlIG9mIDE2LTY0IHllYXIgb2xkIHJlc2lkZW50cykuIFdlc3QgU3Vzc2V4IGhhcyBhIGxvd2VyIGNsYWltYW50IGNvdW50IHJhdGUgdGhhbiBuYXRpb25hbGx5IGFuZCByZWdpb25hbGx5LCBNaWQgU3Vzc2V4IGhhcyB0aGUgbG93ZXN0IGNsYWltYW50IGNvdW50IHJhdGUgYW5kIENyYXdsZXkgdGhlIGhpZ2hlc3QsIGJ1dCBhbGwgZGlzdHJpY3RzIGFuZCBib3JvdWdocyB3aXRoaW4gV2VzdCBTdXNzZXggaGF2ZSBjbGFpbWFudCBjb3VudCByYXRlcyBsb3dlciB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9FRjQ1NzNBQy0xQzdELTQ1RDEtODRFMy1DMkIxNzc0RUMyQThcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVW5pdmVyc2FsIENyZWRpdCB3YXMgaW50cm9kdWNlZCBpbiAyMDEzIHdoaWNoIHdhcyB0byByZXBsYWNlIGEgbnVtYmVyIG9mIG1lYW5zIHRlc3RlZCBiZW5lZml0cyBpbmNsdWRpbmcgdGhlIG1lYW5zLXRlc3RlZCBlbGVtZW50IG9mIEpTQS4gVGhpcyBoYXMgYmVlbiByb2xsZWQgb3V0IGFjcm9zcyB0aGUgY291bnRyeSBhbmQgZnJvbSB0aGUgQXV0dW1uIDIwMTUgaGFzIGJlZW4gcm9sbGVkIG91dCB0aHJvdWdob3V0IGFsbCBXZXN0IFN1c3NleCBKb2JjZW50cmVzLiBUaGVyZSBpcyBhIG5ldyBleHBlcmltZW50YWwgZGF0YSBzZXQgd2hpY2ggaW5jbHVkZXMgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCB3aG8gYXJlIG91dCBvZiB3b3JrLiBUaGVyZSBhcmUgc29tZSBjYXZlYXRzIHdpdGggdGhlIGRhdGEsIGFuZCBzbyBmYXIsIGFzIGl04oCZcyBzdGlsbCBlYXJseSBkYXlzIG9mIFVuaXZlcnNhbCBDcmVkaXQgYmVpbmcgaW50cm9kdWNlZCB0aGVyZSBpcyBsaXR0bGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBuZXcgZGF0YSBzZXQgYW5kIHRoYXQgZm9yIEpTQSBjbGFpbWFudHMgc28gZm9yIHRoZSB0aW1lIHdlIHdpbGwgY29udGludWUgdG8gbW9uaXRvciBKU0EgY2xhaW1hbnRzIGZvciA1MC02NCB5ZWFyIG9sZHMuIEhvd2V2ZXIgdGhlIHBlcmNlbnRhZ2Ugb2YgY2xhaW1hbnRzIGJ5IGFnZSBncm91cCBmcm9tIHRoZSBVbml2ZXJzYWwgQ3JlZGl0IGV4cGVyaW1lbnRhbCBkYXRhIHNldCBpcyBub3QgYXZhaWxhYmxlLiBUaGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIHNldHMgb2YgZGF0YSBhcmUgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8wRENBRTIxMS04OTVELTQyNjYtQkRBOC1ENDg0RUYyN0ExQUZcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIlJlZHVjaW5nIHRoZSBudW1iZXIgb2YgcGVvcGxlIGFnZWQgNTAtNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZVwiLFwiaWNvblwiOlwidGV4dFwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOmZhbHNlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgdHJhY2tlZCBieSBtZWFzdXJpbmcgdGhlICUgb2YgcGVvcGxlIGFnZWQgNTAg4oCTIDY0IGNsYWltaW5nIEpvYnNlZWtlcnMgQWxsb3dhbmNlIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgcmVzaWRlbnQgcG9wdWxhdGlvbiBvZiB0aGUgc2FtZSBhZ2UuXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTUtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldF90eXBlIjoicmVsYXRpdmUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjAuOSwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiI4enZ0LXJiOGcifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPCJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPFwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSB1bmVtcGxveW1lbnQgcmF0ZSBmb3IgcGVvcGxlIGFnZWQgNTAtNjRcIixcImlzX2J1cm5kb3duX2Rpc2FibGVkXCI6ZmFsc2UsXCJpc190cmVuZGxpbmVfZGlzYWJsZWRcIjp0cnVlfSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMlQwOTozODowMS43MTVaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6NTY6MDIuMjIzWiIsInZlcnNpb24iOiIyMDE4LTA0LTEyVDA5OjM4OjAxLjcxNVoiLCJpZCI6Im1mZHgtdXRqYyJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xOFQxNToyODowOC43OTBaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6NTY6MDIuMzMwWiIsInZlcnNpb24iOiIyMDE4LTA0LTE4VDE1OjI4OjA4Ljc5MFoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6InA0c2Ytc2NyZSIsIm5hbWUiOiJCcm9hZGJhbmQgUm9sbCBPdXQiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcInRleHRcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhZGRpdGlvbmFsIHByZW1pc2VzIGZpZ3VyZSBhcyBzdGF0ZWQgYWJvdmUgaXMgYmFzZWQgb24gdGhlIGxhdGVzdCBhdmFpbGFibGUgZGF0YSB3aGljaCBpcyBwcm92aWRlZCBieSBCVCBvbmUgcXVhcnRlciBhZnRlciBkZWxpdmVyeS5cXG5cXG4qKkZpYnJlIGJyb2FkYmFuZCBmb3Igb3VyIGNvdW50eeKAmXMgZnV0dXJlKipcXG5cXG5CZXR0ZXIgQ29ubmVjdGVkIGlzIGFuIGV4Y2l0aW5nIHByb2plY3QgdG8gYnJpbmcgYmV0dGVyLCBmYXN0ZXIgYnJvYWRiYW5kIHRvIG91ciBjb3VudHkuIEluIFNwcmluZyAyMDE2IHdlIGFjaGlldmVkIG91ciB0YXJnZXQgb2YgaW5jcmVhc2luZyBjb3ZlcmFnZSBieSDigJhzdXBlcmZhc3Qg4oCZYnJvYWRiYW5kIHRvIG1vcmUgdGhhbiA5MCUgb2YgdGhlIGNvdW50eS4gTW9yZSB0aGFuIDYwLDAwMCBob21lcyBhbmQgYnVzaW5lc3NlcyBoYXZlIGFjY2VzcyB0byBuZXcgZmlicmUgYnJvYWRiYW5kIHNlcnZpY2VzIHdoaWNoIHdvdWxkIG5vdCBoYXZlIGJlZW4gYXZhaWxhYmxlIHRvIHRoZW0gd2l0aG91dCB0aGUgcHJvamVjdOKAmXMgaW50ZXJ2ZW50aW9uLiBOb3cgd2UgYXJlIHVzaW5nIGFkZGl0aW9uYWwgZnVuZGluZywgdG9nZXRoZXIgd2l0aCBtb25leSB0aGF0IEJUIGlzIHBheWluZyBiYWNrIHRvIHRoZSBDb3VudHkgQ291bmNpbCwgdG8gcmVhY2ggYW4gZXh0cmEgNywwMDAgcHJlbWlzZXMgYnkgdGhlIGVuZCBvZiAyMDE4LiBUaGUgcHJvamVjdCBpcyBwcm9ncmVzc2luZyB3ZWxsIHdpdGggZGV0YWlsZWQgbmV0d29yayBkZXNpZ24sIHBsYW5uaW5nIGFuZCBlbmdpbmVlcmluZyBzdXJ2ZXlzIGNvbnRpbnVpbmcgYW5kIHNvIGZhciBoYXMgZGVsaXZlcmVkIGFjY2VzcyB0byAnc3VwZXJmYXN0JyBmaWJyZSBicm9hZGJhbmQgdG8gYW4gZXh0cmEgMywzMDcgcHJlbWlzZXMgaW4gV2VzdCBTdXNzZXggc2luY2UgdGhpcyBwaGFzZSBiZWdhbiBpbiBBcHJpbCAyMDE2LlxcblxcbiBcXG5cXG4qKlRhcmdldCoqXFxuXFxuIFxcblxcbkluIHRvdGFsIHdlIGFpbSB0byBiZW5lZml0IGFuIGV4dHJhIDcsMDAwIHByZW1pc2VzIGJ5IERlY2VtYmVyIDIwMTguXFxuXFxuTW9yZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgYXQ6IFt3d3cud2VzdHN1c3NleC1iZXR0ZXJjb25uZWN0ZWQub3JnLnVrRGlnaXRhbF1bMF0gY29tbXVuaWNhdGlvbnMgaW5mcmFzdHJ1Y3R1cmUgaXMgYmVjb21pbmcgYXMgdml0YWwgYXMgdHJhbnNwb3J0YXRpb24sIHdhdGVyIGFuZCBwb3dlciBzZXJ2aWNlcy4g4oCYU3VwZXJmYXN04oCZIGJyb2FkYmFuZCB0ZWNobm9sb2d5IGhhcyB0cmFuc2Zvcm1lZCBob3cgd2Ugd29yaywgbGl2ZSBhbmQgY29tbXVuaWNhdGUuIFRoaXMgZXhjaXRpbmcgdGVjaG5vbG9neSBjYW4gaW1wcm92ZSBvdXIgcXVhbGl0eSBvZiBsaWZlLCBhbmQgaGVscCB0byBncm93IG91ciBlY29ub215IGJ5IGVuYWJsaW5nIG5ldyBidXNpbmVzc2VzIHRvIHN0YXJ0IHVwLCBhbmQgZXhpc3Rpbmcgb25lcyB0byBwcm9zcGVyLlxcblxcbldlIGFyZSBsb29raW5nIHRvIHRoZSBmdXR1cmUgYW5kIGhhdmUgYW4gYW1iaXRpb24gdG8gc3VwcG9ydCBvdXIgcHVibGljIHNlcnZpY2VzIGJ5IGJ1aWxkaW5nIHRoZSBuZXh0IGdlbmVyYXRpb24gb2YgY29ubmVjdGl2aXR5LCBnaXZpbmcgc3BlZWRzIGZyb20gMUdiICgxMDAwbWJwcykgdXNpbmcgcHVyZSBvcHRpY2FsIGZpYnJlLlxcblxcbiBcXG5cXG5UaGUgZ292ZXJubWVudCB3YW50cyB0byBpbmNyZWFzZSB0aGUgYW1vdW50IG9mIHB1cmUgb3B0aWNhbCBvciDigJhmdWxsIGZpYnJl4oCZIGluZnJhc3RydWN0dXJlIGNvdmVyaW5nIHRoZSBVSy4gQ3VycmVudGx5IG9ubHkgYXJvdW5kIDIlIG9mIHByZW1pc2VzIGluIHRoZSBVSyBoYXZlIGFjY2VzcyB0byB0aGUgZmFzdGVzdCBicm9hZGJhbmQgc3BlZWRzIHdoaWNoIHRyYXZlbCBhbGwgdGhlIHdheWludG8gYnVpbGRpbmdzIG92ZXIgZnVsbCBmaWJyZSBpbmZyYXN0cnVjdHVyZS4gUHVibGljIHNlcnZpY2VzIGFyZSBldm9sdmluZyBhbmQgc29vbiB3aWxsIGJlIGRlbGl2ZXJlZCBpbiBuZXcgYW5kIGRpZ2l0YWwgd2F5cywgd2hpY2ggd2lsbCByZXF1aXJlIGZhc3RlciBkb3dubG9hZCBhbmQgdXBsb2FkIHNwZWVkcyBhbmQgZ3JlYXRlciBiYW5kd2lkdGguIFdlIHdhbnQgdG8gaW52ZXN0IGluIGZ1bGwgZmlicmUgaW5mcmFzdHJ1Y3R1cmUgbm93IHRvIGdldCBvdXIgcHVibGljIGJ1aWxkaW5ncyBhbmQgb3VyIHNlcnZpY2VzIHJlYWR5IGZvciB0aGUgZnV0dXJlLlxcblxcblswXTogaHR0cDovL3d3dy53ZXN0c3Vzc2V4LWJldHRlcmNvbm5lY3RlZC5vcmcudWtEaWdpdGFsXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqRGVjZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgcHJvamVjdCBpcyBwcm9ncmVzc2luZyB3ZWxsIHdpdGggZGV0YWlsZWQgbmV0d29yayBkZXNpZ24sIHBsYW5uaW5nIGFuZCBlbmdpbmVlcmluZyBzdXJ2ZXlzIGNvbnRpbnVpbmcgYW5kIHNvIGZhciBoYXMgZGVsaXZlcmVkIGFjY2VzcyB0byAnc3VwZXJmYXN0JyBmaWJyZSBicm9hZGJhbmQgdG8gYW4gZXh0cmEgMywzMDcgcHJlbWlzZXMgaW4gV2VzdCBTdXNzZXggc2luY2UgdGhpcyBwaGFzZSBiZWdhbiBpbiBBcHJpbCAyMDE2LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvIFxcXCJzdXBlcmZhc3RcXFwiIGZpYnJlIGJyb2FkYmFuZCB0byAxLDg3MSBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCBzaW5jZSB0aGlzIHBoYXNlIGJlZ2FuIGluIEFwcmlsIDIwMTYuIFRoaXMgaXMgY3VycmVudGx5IDI2LjclIG9mIG91ciB0YXJnZXQgdG8gcmVhY2ggNywwMDAgcHJlbWlzZXMgYnkgdGhlIGVuZCBvZiBTZXB0ZW1iZXIgMjAxOC4gVGhlIHByb2plY3QgaXMgb24gdHJhY2sgaW4gdGVybXMgb2YgYWN0dWFsIGJ1aWxkIHByb2dyYW1tZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipBcHJpbCAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgcHJvamVjdCBpcyBwcm9ncmVzc2luZyB3ZWxsIHdpdGggZGV0YWlsZWQgbmV0d29yayBkZXNpZ24sIHBsYW5uaW5nIGFuZCBlbmdpbmVlcmluZyBzdXJ2ZXlzIGNvbnRpbnVpbmcgYW5kIHNvIGZhciBoYXMgZGVsaXZlcmVkIGFjY2VzcyB0b1xcXCJzdXBlcmZhc3RcXFwiIGZpYnJlIGJyb2FkYmFuZCB0byAxLDIwMyBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCBzaW5jZSB0aGlzIHBoYXNlIGJlZ2FuIGluIEFwcmlsIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipUYXJnZXQqKlxcblxcbkluIHRvdGFsIHdlIGFpbSB0byBiZW5lZml0IGFuIGV4dHJhIDcsMDAwIHByZW1pc2VzIGJ5IFNlcHRlbWJlciBvZiAyMDE4LlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzgzMUY3QTdELTNGQTktNEYxMy04ODE0LTcyNTlCM0FGMjZFOVwifV1dfV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIGFkZGl0aW9uYWwgcHJvcGVydGllcyB3aXRoIGFjY2VzcyB0byBcXFwic3VwZXJmYXN0XFxcIiBmaWJyZSBicm9hZGJhbmQgXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiV2UgYWltIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgcHJlbWlzZXMgaW4gV2VzdCBTdXNzZXggd2l0aCBhY2Nlc3MgdG8gXFxcInN1cGVyZmFzdFxcXCIgZmlicmUgYnJvYWRiYW5kIGJ5IHRoZSBlbmQgb2YgRGVjZW1iZXIgMjAxOCBieSBhdCBsZWFzdCA3LDAwMFwiLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzLzI1NjlDNjZBLTI3QTMtNDEzNi1BNTJGLUFDMkRBNEFFMzk1MFwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE2LTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6InByZW1pc2VzIiwidGFyZ2V0Ijo3MDAwLCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6InAyN20tMmV1NCJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDE2fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9fSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fX0sXCJzdGFydFwiOlwiMjAxNC0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNC0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSBhZGRpdGlvbmFsIHRvdGFsIGhvbWVzIHBhc3NlZCAoVEhQKSBcIixcImlzX2J1cm5kb3duX2Rpc2FibGVkXCI6ZmFsc2UsXCJpc190cmVuZGxpbmVfZGlzYWJsZWRcIjpmYWxzZSxcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOnRydWUsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiZ29vZFwifSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMlQxNTo1NjoyNS4wNTdaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MDI6NDguNTkyWiIsInZlcnNpb24iOiIyMDE4LTA0LTEyVDE1OjU2OjI1LjA1N1oiLCJ0YXJnZXRfdG9sZXJhbmNlIjo3MDAsImlkIjoicnp5OS00NzVlIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDE1OjU5OjQ2Ljg3NVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTowMjo0OC42NTRaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMTU6NTk6NDYuODc1WiIsImNyZWF0ZWRfYnkiOiIzZHB2LWpyOG0ifV0sInZlcnNpb24iOiIyMDE4LTAxLTI2VDA5OjUxOjM1LjY0NloifSx7ImlkIjoicWd5ci04NmY1IiwibmFtZSI6IkluZGVwZW5kZW5jZSBmb3IgbGF0ZXIgbGlmZSIsImdvYWxzIjpbeyJpZCI6IjdnbmctM2Q5YyIsIm5hbWUiOiJDaG9pY2Ugb3ZlciBPd24gQ2FyZSIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipDaG9pY2Ugb3ZlciBvd24gQ2FyZSoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIG1lYXN1cmUgaXMgYSByZWZsZWN0aW9uIG9mIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsJ3MgZHJpdmUgdG8gb2ZmZXIgcGVvcGxlIGNob2ljZSBhbmQgaW5kZXBlbmRlbmNlLiBSZXNlYXJjaCBoYXMgaW5kaWNhdGVkIHRoYXQgcmVjZWlwdCBvZiBzZWxmLWRpcmVjdGVkIHN1cHBvcnQsIHZpYSBwZXJzb25hbCBidWRnZXRzLCBoYXMgYSBwb3NpdGl2ZSBlZmZlY3QgaW4gdGVybXMgb2YgaW1wYWN0IG9uIHdlbGwtYmVpbmcsIGluY3JlYXNlZCBjaG9pY2UgYW5kIGNvbnRyb2wsIGNvc3QgaW1wbGljYXRpb25zIGFuZCBpbXByb3Zpbmcgb3V0Y29tZXMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBhbm51YWwgQWR1bHRzIFNvY2lhbCBDYXJlIFVzZXIgU3VydmV5IHdhcyBjb21wbGV0ZWQgaW4gQXByaWwgYW5kIE1heSAyMDE3LiBTdXJ2ZXlzIHdlcmUgc2VudCBvdXQgdG8gY3VzdG9tZXJzIGFuZCBjYXJlcnMgd2hvIGN1cnJlbnRseSByZWNlaXZlIGEgc2VydmljZSBmcm9tIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIOKAkyB0aGVyZSB3YXMgYSBzaWduaWZpY2FudCBpbXByb3ZlbWVudCBpbiB0aGUgcmV0dXJuIG9mIHRoZSBzdXJ2ZXlzIGZyb20gMzcgJSB0byA1MSAlIGFuZCB0aGUgb3V0Y29tZXMgd2VyZSByZXBvcnRlZCBpbiBsaW5lIHdpdGggdGhlIHJlcXVpcmVtZW50cyBmcm9tIHRoZSBEZXBhcnRtZW50IG9mIEhlYWx0aC4gVGhlIHNjb3JlIHRvIHRoZSBxdWVzdGlvbiB3YXMgNzcuNiAlIHdoaWNoIGlzIGFuIGltcHJvdmVtZW50IG9uIGxhc3QgeWVhci4gVGhlIFB1YmxpYyBIZWFsdGggUmVzZWFyY2ggdW5pdCBhcmUgY3VycmVudGx5IHVuZGVydGFraW5nIGEgbW9yZSBkZXRhaWxlZCBhbmFseXNpcyBvZiB0aGUgYW5zd2VyczsgdGhpcyB3aWxsIGJlIHJlYWR5IGluIEF1Z3VzdCBhbmQgd2lsbCBiZSBjb25zaWRlcmVkIGJ5IHRoZSBRdWFsaXR5IEFzc3VyYW5jZSBNYW5hZ2VtZW50IEJvYXJkLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipDYXJlIEZ1bmRpbmcgJiBBZHZpY2UqKlxcblxcbioqQ2FyZXdpc2UgQ2FyZSBGdW5kaW5nIFNjaGVtZSoqXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlBlb3BsZSBhcmUgbGl2aW5nIGxvbmdlciBhbmQgZm9yIHNvbWUgdGhpcyBtYXkgbWVhbiBtb3ZpbmcgaW50byBhIGNhcmUgaG9tZS4gVGhpcyBkZWNpc2lvbiBpcyBsaWtlbHkgdG8gYmUgb25lIG9mIHRoZSBtb3N0IGV4cGVuc2l2ZSBkZWNpc2lvbnMgcGVvcGxlIG1ha2UgaW4gdGhlaXIgbGl2ZXMgYW5kIHRoZSBwcm9zcGVjdCBvZiBwYXlpbmcgZm9yIGxvbmctdGVybSBjYXJlIGNhbiBmZWVsIGRhdW50aW5nLiBZZXQgbWFueSBkbyBub3Qgc2VlayBpbmZvcm1hdGlvbiBhbmQgYWR2aWNlIHRvIGhlbHAgdGhlbSBjb25zaWRlciBhbGwgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGFuZCBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucy4gVGhpcyBzb3J0IG9mIHBsYW5uaW5nIGlzIHZpdGFsIGJlY2F1c2UgYmFzZWQgb24gY3VycmVudCBlc3RpbWF0ZXMsIFdlc3QgU3Vzc2V4IHJlc2lkZW50cyBjYW4gZXhwZWN0IHRvIHBheSBhbiBhdmVyYWdlIG9mIMKjNTAsMDAwIG9yIG1vcmUgcGVyIHllYXIgZm9yIGEgcmVzaWRlbnRpYWwgY2FyZSBob21lLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUbyBlbnN1cmUgdGhhdCB0aGUgcmVzaWRlbnRzIG9mIFdlc3QgU3Vzc2V4IGhhdmUgYWNjZXNzIHRvIGhpZ2ggcXVhbGl0eSBpbmZvcm1hdGlvbiBhbmQgYWR2aWNlIGFib3V0IGNhcmUgYW5kIHN1cHBvcnQgb3B0aW9ucyBhbmQgdGhlIG1vc3QgY29zdCBlZmZlY3RpdmUgd2F5cyBvZiBwYXlpbmcgZm9yIHRoaXMsIG91ciBDYXJld2lzZSBDYXJlIEZ1bmRpbmcgc2NoZW1lIHdhcyBlc3RhYmxpc2hlZCBieSBBZ2UgVUsgV2VzdCBTdXNzZXgsIHRoZSBTb2NpZXR5IG9mIExhdGVyIExpZmUgQWR2aXNlcnMgKFNPTExBKSwgdGhlIENvdW50eSBDb3VuY2ls4oCZcyBBZHVsdHPigJkgU2VydmljZXMgYW5kIFRyYWRpbmcgU3RhbmRhcmRzIGRlcGFydG1lbnRzIGFuZCBXZXN0IFN1c3NleCBQYXJ0bmVycyBpbiBDYXJlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDYXJld2lzZSBoYXMgYSBwYW5lbCBvZiBhcHByb3ZlZCBpbmRlcGVuZGVudCBzcGVjaWFsaXN0IGZpbmFuY2lhbCBhZHZpc2VycyB0byBoZWxwIHBlb3BsZSBhZmZvcmQgdGhlIGJlc3QgcXVhbGl0eSBjYXJlIGF0IGhvbWUgb3IgaW4gdGhlaXIgcHJlZmVycmVkIGNhcmUgaG9tZSBmb3IgYXMgbG9uZyBhcyB0aGV5IG5lZWQgaXQgYW5kIHNvIHByZXZlbnQgcGVvcGxlIHJ1bm5pbmcgb3V0IG9mIG1vbmV5IGFuZCBiZWNvbWluZyB0aGUgZmluYW5jaWFsIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBDb3VudHkgQ291bmNpbC5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CMjQxQjRDNi0xMzMxLTQ3MEItQjM2MS1GNkYxRUFDMUREMjRcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQ2FyZXdpc2UgaGFzIGJlZW4gb3BlcmF0aW9uYWwgc2luY2UgMjAxMSBhbmQgdGhlIENvdW50eSBDb3VuY2lsIGhhcywgdGhlcmVmb3JlLCBiZWVuIGluIGEgZ29vZCBwb3NpdGlvbiB0byBldmFsdWF0ZSBwZXJmb3JtYW5jZSBvdmVyIGEgZmFpcmx5IGxvbmcgcGVyaW9kIGFuZCB0YWtlIGFjdGlvbiBhcyBuZWNlc3NhcnkgdG8gcmVmaW5lIHRoZSBtb2RlbC4gQ29uc2VxdWVudGx5LCB3ZSB3ZXJlIHdlbGwtcG9zaXRpb25lZCB0byBtZWV0IG91ciBkdXR5IHVuZGVyIHRoZSBDYXJlIEFjdCB0byBlbnN1cmUgdGhhdCByZXNpZGVudHMgaGF2ZSBhY2Nlc3MgdG8gaW1wYXJ0aWFsIGZpbmFuY2lhbCBhZHZpY2UgYWJvdXQgcGF5aW5nIGZvciBjYXJlIGFuZCBzdXBwb3J0LiBUaGlzIGFsc28gbWVhbnMgdGhhdCBDYXJld2lzZSBoYXMgZXZvbHZlZCBpbnRvIGEgbW9kZWwgdGhhdCBpcyBiZWluZyB1c2VkIGFzIGFuIGV4ZW1wbGFyIG9mIGdvb2QgcHJhY3RpY2UgYXQgYSBuYXRpb25hbCBsZXZlbCwgbm90IGxlYXN0IGJlY2F1c2Ugb2YgdGhlIGhpZ2ggbGV2ZWwgb2YgY3VzdG9tZXIgY2hvaWNlIHRoYXQgaXMgYnVpbHQgaW50byB0aGUgbW9kZWwuIFRoZSBzdWNjZXNzZnVsIHBhcnRuZXJzaGlwIHN0eWxlIGFuZCB0aGUgcmlzayBtYW5hZ2VtZW50IGFwcHJvYWNoIGFkb3B0ZWQgYnkgdGhlIENvdW50eSBDb3VuY2lsIGhhdmUgYWxzbyBiZWVuIGhpZ2hsaWdodGVkIHRvIG90aGVyIGxvY2FsIGF1dGhvcml0aWVzIGFzIHBvc2l0aXZlIGVsZW1lbnRzIG9mIG91ciBhcHByb2FjaC5cXG5cXG5QcmVzZW50YXRpb25zIG9uIHRoZSBDYXJld2lzZSBtb2RlbCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gVExBUCAoVGhpbmsgTG9jYWwsIEFjdCBQZXJzb25hbCkvRGVwYXJ0bWVudCBvZiBIZWFsdGggbmF0aW9uYWwgd29ya3Nob3BzIGhlbGQgdG8gc3VwcG9ydCBsb2NhbCBhdXRob3JpdGllcyBpbiBwbGFubmluZyB0byBkaXNjaGFyZ2UgdGhlaXIgZHV0eSB1bmRlciB0aGUgQ2FyZSBBY3QgMjAxNC4gQ2FyZXdpc2UgaGFzIGluZm9ybWVkIHRoZSBEZXBhcnRtZW50IG9mIEhlYWx0aCBmaW5hbCBndWlkYW5jZSBmb3IgbG9jYWwgYXV0aG9yaXRpZXMgb24gdGhlIHByb3Zpc2lvbiBvZiBmaW5hbmNpYWwgaW5mb3JtYXRpb24gYW5kIGFkdmljZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyAqKkhlcmXigJlzIGhvdyBmaW5hbmNpYWwgYWR2aWNlIGZyb20gYSBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdCBoZWxwZWQgb25lIFdlc3QgU3Vzc2V4IGZhbWlseS4qKlxcblxcbkdyYWNlKiB3YXMgODQgd2hlbiBoZXIgZGF1Z2h0ZXIgYW5kIGxhd3llciBhc2tlZCBmb3IgYWR2aWNlIG9uIGNvdmVyaW5nIGhlciBjYXJlIGNvc3RzLiBHcmFjZSBzdWZmZXJlZCBzb21lIHBoeXNpY2FsIHByb2JsZW1zIGFuZCBtaWxkIGRlbWVudGlhIHdoaWNoIG1lYW50IHRoYXQgc2hlIG5lZWRlZCBmdWxsLXRpbWUgcmVzaWRlbnRpYWwgY2FyZS4gR3JhY2Ugb3duZWQgYSBob3VzZSBhbmQgYWZ0ZXIgaXQgd2FzIHNvbGQgdGhhdCBnYXZlIGhlciBhc3NldHMgb2YgwqMyMTAsMDAwLiBXZSBlc3RpbWF0ZWQgdGhhdCBpZiBHcmFjZSBkaWQgbm90aGluZyBoZXIgbW9uZXkgd291bGQgcnVuIGRvd24gYW5kIHNoZSB3b3VsZCBuZWVkIGhlciBjYXJlIHRvIGJlIHBhaWQgZm9yIGJ5IHRoZSBsb2NhbCBhdXRob3JpdHkgYWZ0ZXIgc2V2ZW4geWVhcnMuXFxuXFxuIFwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzBBQ0JFRUQ0LUMwQTAtNDFEMS1CMzcxLUM0NzQ0ODg5QjgwNlwifV0sW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkFmdGVyIGxvb2tpbmcgYXQgR3JhY2XigJlzIHNpdHVhdGlvbiB3ZSBjb25zaWRlcmVkIGEgbnVtYmVyIG9mIG9wdGlvbnMuIE9uZSBvcHRpb24gd2FzIHRvIGFycmFuZ2UgYW4gaW1tZWRpYXRlIGNhcmUgcGxhbiBmb3IgYSBwcmVtaXVtIG9mIMKjMTM4LDAwMC4gSXQgd291bGQgcGF5IGhlciBjYXJlIHByb3ZpZGVyIMKjMiwxMDAgYSBtb250aCwgd2hpY2ggd291bGQgaW5jcmVhc2UgZWFjaCBBcHJpbCBieSA1JSBhbmQgYmUgcGF5YWJsZSBmb3IgaGVyIGxpZmV0aW1lLiBIb3dldmVyLCB0aGlzIG9wdGlvbiB3b3VsZCBvbmx5IGxlYXZlIMKjNzIsMDAwIG9mIGhlciBlc3RhdGUgYW5kIEdyYWNlIGFuZCBoZXIgZmFtaWx5IHdlcmUgdW5jb21mb3J0YWJsZSB3aXRoIHRoZSBpZGVhIHRoYXQgc3VjaCBhIGxhcmdlIHN1bSBjb3VsZCBiZSBsb3N0IGlmIEdyYWNlIGRpZWQgc29vbiBhZnRlciBidXlpbmcgdGhlIHBsYW4uIEluc3RlYWQgd2UgYWdyZWVkIHRoYXQgR3JhY2Ugc2hvdWxkIGJ1eSBhIGZpdmUteWVhciBkZWZlcnJlZCBjYXJlIHBsYW4gYXQgYSBjb3N0IG9mIMKjMjYsMTAwLiBUaGlzIHBsYW4gaGFzIHRoZSBzYW1lIGxvbmctdGVybSBiZW5lZml0IGFzIHRoZSBpbW1lZGlhdGUgcGxhbiwgYnV0IHdpbGwgb25seSBwYXkgb3V0IGlmIEdyYWNlIHN0aWxsIG5lZWRzIGNhcmUgaW4gZml2ZSB5ZWFyc+KAmSB0aW1lLiBJbiB0aGUgbWVhbnRpbWUgc2hlIGZ1bmRzIHRoZSBjYXJlIGZyb20gaGVyIGFzc2V0cy4gT3ZlcmFsbCB0aGUgbG9uZy10ZXJtIGNvc3Qgb2YgdGhpcyBvcHRpb24gaXMgZ3JlYXRlciBidXQgR3JhY2UgYW5kIHRoZSBmYW1pbHkgd2VyZSBoYXBwaWVyIHdpdGggdGhpcyBzb2x1dGlvbiBhcyB0aGV5IHdvdWxkIGZlZWwgdGhhdCB0aGUgZXh0cmEgbW9uZXkgaGFkIGJlZW4gc3BlbnQgb24gR3JhY2XigJlzIGNhcmUuIE9uY2UgcGFpZCwgdGhlIHByZW1pdW0gY2FuIG5ldmVyIGJlIHJldHVybmVkLCBidXQgR3JhY2UgYW5kIGhlciBmYW1pbHkgZm91bmQgdGhlIHBsYW4gZ2F2ZSB0aGVtIGdyZWF0IHBlYWNlIG9mIG1pbmQuIEdyYWNlIGtuZXcgdGhhdCB0aGUgaW5jb21lIGZyb20gdGhlIHBsYW4gd291bGQgYmUgdGhlcmUgbm8gbWF0dGVyIGhvdyBsb25nIHNoZSBsaXZlZC4gU2hlIGRpZG7igJl0IGhhdmUgdG8gd29ycnkgYWJvdXQgaGVyIG1vbmV5IHJ1bm5pbmcgb3V0IGFuZCBzaGUgd291bGQgc3RpbGwgaGF2ZSBtb25leSB0byBsZWF2ZSBhbiBpbmhlcml0YW5jZSBmb3IgaGVyIGZhbWlseS4gT24gR3JhY2VzIGRlYXRoIHNoZSB3aWxsIGxlYXZlIGFuIGVzdGF0ZSBiZXR3ZWVuIMKjMTg0LDAwMCBhbmQgwqM2NywwMDAsIGRlcGVuZGluZyB1cG9uIGhvdyBsb25nIHNoZSBsaXZlcy5cXG5cXG5UaGlzIGlzIGp1c3Qgb25lIGV4YW1wbGUgb2YgaG93IENhcmV3aXNlIGNhbiBoZWxwIHBlb3BsZSBtYWtlIG1vcmUgaW5mb3JtZWQgY2hvaWNlcyBhdCB0aGlzIHNvbWV0aW1lcyB2ZXJ5IHN0cmVzc2Z1bCBzdGFnZSBpbiB0aGVpciBsaXZlcy5cXG5cXG4qIE5hbWUgY2hhbmdlZCAgIFxcblwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIjICoqUGVyZm9ybWFuY2UqKlxcblxcblRoZSBwb3RlbnRpYWwgZmluYW5jaWFsIGJlbmVmaXRzIHRvIGJvdGggaW5kaXZpZHVhbHMgYW5kIHRoZSBDb3VudHkgQ291bmNpbCwgYW5kIHRoZSBwcmVkaWN0ZWQgZGVtb2dyYXBoaWMgaW5jcmVhc2UgaW4gbnVtYmVycyBvZiBvbGRlciBwZW9wbGUsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoIGRlbWVudGlhLCBvdmVyIHRoZSBjb21pbmcgeWVhcnMsIG1lYW5zIHRoYXQgcHJvbW90aW9uIG9mIHRoZSBDYXJld2lzZSBzY2hlbWUgaXMgaW1wZXJhdGl2ZS4gQ2FyZWZ1bGx5IHRhcmdldGVkIG1hcmtldGluZyBhbmQgcHJvbW90aW9ucyBjYW1wYWlnbnMgcmFuIHRocm91Z2hvdXQgMjAxNC0xNSwgMjAxNS0xNiBhbmQgMjAxNi0xNy4gQSBtYXJrZXRpbmcgY2FtcGFpZ24gZm9yIDIwMTctMTggaXMgbm93IHVuZGVyd2F5IHVzaW5nIHRoZSBvdXRjb21lIG9mIGV2YWx1YXRpb24gZnJvbSB0aGUgcHJldmlvdXMgdGhyZWUgeWVhcnMuIFRoZSBtYXJrZXRpbmcgYWltcyB0byBlbnN1cmUgdGhhdCB0aGUgbW9tZW50dW0gb2YgcGFzdCBjYW1wYWlnbnMgaXMgbWFpbnRhaW5lZCBhbmQgcHVibGljIGF3YXJlbmVzcyBpbmNyZWFzZWQuIFdvcmtpbmcgY2xvc2VseSB3aXRoIFBvbGljeSAmIENvbW11bmljYXRpb25zIHRoZSAyMDE3LTE4IGNhbXBhaWduIHdpbGwgcmVmbGVjdCB0aGUgQWR1bHRzJyBTZXJ2aWNlcyB2aXNpb24gZm9yIHRoZSBmdXR1cmUgd2hpY2ggZm9jdXNlcyBvbiBpbmNyZWFzaW5nIHBlb3BsZeKAmXMgaW5kZXBlbmRlbmNlIGFuZCB3ZWxsYmVpbmcgYW5kIGVuY291cmFnaW5nIG1vcmUgcGVvcGxlIHRvIHBsYW4gZWFybHkgZm9yIHRoZWlyIGxvbmctdGVybSBjYXJlIG5lZWRzIGluIG9sZGVyIGFnZS5cXG5cXG5XZSBrbm93IHRoYXQgbWFueSBwZW9wbGUgZG8gbm90IGltbWVkaWF0ZWx5IHdhbnQgYSByZWZlcnJhbCB0byBhIGNhcmUgZmVlcyBzcGVjaWFsaXN0IGJ1dCB3b3VsZCByYXRoZXIgaGF2ZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmlyc3QgaW5zdGFuY2UgYW5kIHRoZW4gbWFrZSBhIG1lYXN1cmVkIGRlY2lzaW9uIGxhdGVyIGFib3V0IHdoZXRoZXIgdG8gcHJvY2VlZC4gSXQgaXMsIHRoZXJlZm9yZSwgcmVjb2duaXNlZCB0aGF0IHRoZSBudW1iZXIgb2YgcmVmZXJyYWxzIGlzIG5ldmVyIGxpa2VseSB0byBpbmNyZWFzZSBkcmFtYXRpY2FsbHkgaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZSBhbmQgdGhhdCBhbnkgY2FtcGFpZ24gd2lsbCB0YWtlIHRpbWUgdG8geWllbGQgcmVzdWx0cy4gUGFydG5lcnMsIGluY2x1ZGluZyB0aGUgY2FyZSBmZWVzIHNwZWNpYWxpc3RzLCBoYXZlIGFkdmlzZWQgdGhhdCB0aGUgcXVhbGl0eSBvZiByZWZlcnJhbHMgc2hvdWxkIGJlIGEga2V5IGZvY3VzIHJhdGhlciB0aGFuIHNpbXBseSBhaW1pbmcgdG8gaW5jcmVhc2UgdGhlIG51bWJlcnMuXFxuXFxuQWdlIFVLIFdlc3QgU3Vzc2V4IHByb3ZpZGVzIGEgZnJlZSBNb25leSBBZHZpY2Ugc2VydmljZSB3aGljaCBpcyBwYXJ0IG9mIHRoZSBDYXJld2lzZSBzY2hlbWU7IHRoaXMgc2VydmljZSBpbmNsdWRlcyBiZW5lZml0cyBhZHZpY2UuIE1heGltaXNpbmcgYmVuZWZpdCBlbnRpdGxlbWVudCBlbmFibGVzIHBlb3BsZSB0byBwdXJjaGFzZSBjYXJlIGFuZCByZW1haW4gbGl2aW5nIGluZGVwZW5kZW50bHkgaW4gdGhlaXIgb3duIGhvbWVzIGZvciBhcyBsb25nIGFzIHBvc3NpYmxlIGFuZCBjYW4gcmVkdWNlIHRoZSBuZWVkIGZvciByZWxpYW5jZSBvbiBDb3VudHkgQ291bmNpbCBmdW5kaW5nLiBJbmNyZWFzZWQgZmluYW5jaWFsIHNlY3VyaXR5IGNhbiBhbHNvIGVuaGFuY2UgcGVvcGxl4oCZcyB3ZWxsYmVpbmcsIGEga2V5IHByaW5jaXBsZSBvZiB0aGUgQ2FyZSBBY3QuIEluIGFkZGl0aW9uLCB0aGUgbG9jYWwgZWNvbm9teSBjYW4gYmVuZWZpdCBmcm9tIHBlb3BsZSB1c2luZyB0aGVpciBiZW5lZml0cyB0byBlbXBsb3kgcGVvcGxlIHRvIHByb3ZpZGUgZG9taWNpbGlhcnkgY2FyZSwgcGVyc29uYWwgYXNzaXN0YW50cywgZ2FyZGVuaW5nIGV0Yy5cXG5cXG5BcyB0aGUgMjAxNi0xNyB0YXJnZXRzIGZvciByZWZlcnJhbHMgdG8gdGhlIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyB3ZXJlIG5vdCBtZXQsIHdlIGFyZSBtYWludGFpbmluZyB0aGUgMjAxNy0xOCB0YXJnZXRzIGZvciB0aGlzIG1lYXN1cmUuXFxuXFxuKiA1NSBwZW9wbGUgcmVmZXJyZWQgdG8gdGhlIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBwZXIgbW9udGggYnkgdGhlIGVuZCBvZiBNYXJjaCAyMDE3IHdpdGggYW4gaW5jcmVtZW50YWwgaW5jcmVhc2UgdGhyb3VnaG91dCB0aGUgeWVhci5cXG4qIC1BZ2UgVUsgV2VzdCBTdXNzZXggTW9uZXkgQWR2aWNlIFNlcnZpY2UgLSBGb3IgMjAxNi4gVGFyZ2V0IGZvciAyMDE3LTE4IGlzIHRvIG1haW50YWluIDU1MCBpbmRpdmlkdWFsIHNlc3Npb25zIHBlciBtb250aCB0aHJvdWdob3V0IHRoZSB5ZWFyLlxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqTWFya2V0aW5nIGFuZCBQcm9tb3Rpb24qKlxcblxcblRoZSBtYXJrZXRpbmcgY2FtcGFpZ24gY29tcHJpc2VzIGEgd2lkZSByYW5nZSBvZiBwcm9tb3Rpb25hbCBjaGFubmVscyBpbmNsdWRpbmcgc29jaWFsIG1lZGlhIGFuZCBkaWdpdGFsIG1ldGhvZHMsIGFsbCBvZiB3aGljaCBhcmUgc3ViamVjdCB0byByb2J1c3QgbW9uaXRvcmluZyBhbmQgZXZhbHVhdGlvbi4gQXMgcGFydCBvZiB0aGUgMjAxNi0xNyBtYXJrZXRpbmcgY2FtcGFpZ24sIENhcmV3aXNlIHdhcyBhZ2Fpbiwgb25lIG9mIHRoZSBtYWluIHNwb25zb3JzIGZvciBXZXN0IFN1c3NleCBDYXJlIE1vbnRoIHdoaWNoIHRvb2sgcGxhY2UgZHVyaW5nIE9jdG9iZXIgMjAxNi4gVGhpcyB3YXMgZGVzaWduZWQgdG8gcHJvbW90ZSB0aGUgZGlmZmVyZW50IGNhcmUgYW5kIHN1cHBvcnQgb3B0aW9ucyBhdmFpbGFibGUgdG8gcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IHVzaW5nIGEgdmFyaWV0eSBvZiBtYXJrZXRpbmcgY2hhbm5lbHMgc3VjaCBhcyByYWRpbyBwcm9tb3Rpb25zIGFuZCBzb2NpYWwgbWVkaWEuIER1cmluZyB0aGUgY2FtcGFpZ24gdGhlIG51bWJlciBvZiBuZXcgJ3VuaXF1ZScgdmlzaXRvcnMgdG8gdGhlIENhcmV3aXNlIHdlYnNpdGUgaW5jcmVhc2VkIGZyb20gU2VwdGVtYmVyIHRvIE9jdG9iZXIgYnkgb3ZlciAyMDMlIGFuZCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSB3ZWIgcGFnZSB3YXMgdmlld2VkIGluY3JlYXNlZCBieSAxNzQlIC4gQ2FyZSBNb250aCBpcyBiZWluZyByZXBlYXRlZCBkdXJpbmcgT2N0b2JlciAyMDE3LlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzZBRjVFMkI4LTBGNTktNDg0NC1BOEJCLThEQzRDMTlEODE3M1wifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGVyZSBpcyBhIGZvY3VzIG9uIHByb21vdGluZyBDYXJld2lzZSBhdCB0aGUg4oCYcG9pbnQgb2YgbmVlZOKAmTsgZm9yIGV4YW1wbGUsIGluIHJlc2lkZW50aWFsIGNhcmUgaG9tZXMgYW5kIHRvIGRvbWljaWxpYXJ5IGNhcmUgcHJvdmlkZXJzLCB0byBob3NwaXRhbCBkaXNjaGFyZ2UgdGVhbXMsIEdQcyBhbmQgc29saWNpdG9ycywgKHBhcnRpY3VsYXJseSBTb2xpY2l0b3JzIGZvciB0aGUgRWxkZXJseSkuIFdlIGhlbGQgc29tZSBDYXJld2lzZSDigJhzdXJnZXJpZXPigJkgaW4gcmVzaWRlbnRpYWwgY2FyZSBob21lcyBhbmQgd2Ugd2lsbCBiZSBjb250aW51ZSB0byBwcm9tb3RlIHRoZSBvZmZlciBhcyBwYXJ0IG9mIHRoZSBwcm9tb3Rpb25hbCBjYW1wYWlnbi4gQ2FyZXdpc2UgYWxzbyBob3N0ZWQgYW4gZXZlbnQgZm9yIGxhd3llcnMsICdCZSBDYXJld2lzZSB3aXRoIHlvdXIgY2xpZW50cycgd2l0aCBDb250aW51aW5nIFByb2Zlc3Npb25hbCBEZXZlbG9wbWVudCBhY2NyZWRpdGF0aW9uIG9uIDV0aCBPY3RvYmVyIDIwMTYuIFRoZSBldmVudCBmb2N1c3NlZCBvbiBwcm9tb3RpbmcgdGhlIGJlbmVmaXRzIGZvciBzb2xpY2l0b3JzIG9mIGVzdGFibGlzaGluZyBsaW5rcyB3aXRoIHRoZSBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgYW5kIGluY2x1ZGVkIGhpZ2ggcHJvZmlsZSBzcGVha2VycyBUaXNoIEhhbmlmaWFuLCBCYXJyaXN0ZXIgYW5kIGZvdW5kZXIgb2YgdGhlIFNvY2lldHkgb2YgbGF0ZXIgTGlmZSBBZHZpc2VycyAoU09MTEEpIGFuZCBTb2xpY2l0b3JzIGZvciB0aGUgRWxkZXJseSBhbmQgRGF2ZSBTZWFnZXIsIERldmVsb3BtZW50IERpcmVjdG9yIGF0IFNvbGljaXRvcnMgZm9yIEluZGVwZW5kZW50IEZpbmFuY2lhbCBBZHZpY2UgKFNJRkEpLiBCb3RoIHNwZWFrZXJzIHByYWlzZWQgdGhlIENhcmV3aXNlIG1vZGVsIGFzIG9uZSBuYXRpb25hbCBnb29kIHByYWN0aWNlIGFuZCBoaWdobGlnaHRlZCB0aGUgaW1wb3J0YW5jZSBvZiBsYXd5ZXJzIHJlZmVycmluZyBjbGllbnRzIHRvIHNwZWNpYWxpc2VkLCBoaWdobHkgcXVhbGlmaWVkIFNPTExBIGFjY3JlZGl0ZWQgZmluYW5jaWFsIGFkdmlzZXJzIC4gVGhlIGV2ZW50IHdhcyB3ZWxsIGF0dGVuZGVkIGJ5IGxhd3llcnMgZnJvbSBhY3Jvc3MgdGhlIGNvdW50eSBhbmQgZGVsZWdhdGUgZmVlZGJhY2sgaW5kaWNhdGVkIHRoYXQgdGhlIGV2ZW50IHdhcyB3ZWxsIHJlY2VpdmVkLiBEZWxlZ2F0ZXMgd2VyZSBjb250YWN0ZWQgdG8gb2ZmZXIgdGhlbSBvcHBvcnR1bml0eSB0byBlc3RhYmxpc2ggcHJvZmVzc2lvbmFsIGxpbmtzIHdpdGggQ2FyZXdpc2UgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIGluIHRoZWlyIGxvY2FsIGFyZWEuIEluIGFkZGl0aW9uLCBpbnZpdGVlcyB3aG8gd2VyZSB1bmFibGUgdG8gYXR0ZW5kIHRoZSBldmVudCB3ZXJlIHByb3ZpZGVkIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIGVzdGFibGlzaCBwcm9mZXNzaW9uYWwgbGlua3Mgd2l0aCBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgbmVhcmVzdCB0byB0aGVpciBwcmFjdGljZS4gVGhlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBjb250aW51ZSB0byB2aXNpdCBmaXJtcyBvZiBzb2xpY2l0b3JzIG9uIHJlcXVlc3QgYW5kIHRvIGJ1aWxkIHByb2Zlc3Npb25hbCByZWxhdGlvbnNoaXBzIHdpdGggbGF3eWVycy9cXG5cXG5XZSBjb250aW51ZSB0byBpc3N1ZSBpbnZpdGVzIHRvIGNhcmUgaG9tZSBwcm92aWRlcnMgdG8gaG9sZCBDYXJld2lzZSAnc3VyZ2VyaWVzJyBmb3IgdGhlaXIgc3RhZmYsIHJlc2lkZW50cyBhbmQgdGhlaXIgZmFtaWxpZXMuIFRoZSB0ZW1wbGF0ZSByZWNvbW1lbmRpbmcgdGhhdCBuZXcgY2FyZSBob21lIHJlc2lkZW50cyBhY2Nlc3MgZ29vZCBmaW5hbmNpYWwgYWR2aWNlIHdoaWNoIHdhcyBkZXZlbG9wZWQgZm9yIGluY2x1c2lvbiBpbiBhZG1pc3Npb24gcGFja3MsIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcmVzZW1ibGUgbW9yZSBvZiBhbiBpbmZvcm1hdGlvbiBmbHllci4gVGhlIGZseWVyIHdhcyBjaXJjdWxhdGVkIHRvIHByb3ZpZGVycyBhbmQgaXQgaXMgYmVpbmcgc3VnZ2VzdGVkIHRoYXQgZXhpc3RpbmcgcmVzaWRlbnRzIGFyZSBhbHNvIGluY2x1ZGVkLiBXZXN0IFN1c3NleCBQYXJ0bmVycyBpbiBDYXJlIChyZXByZXNlbnRhdGl2ZSBib2R5IGZvciBjYXJlIHByb3ZpZGVycyBpbiBXZXN0IFN1c3NleCBhbmQgYSBDYXJld2lzZSBwYXJ0bmVyKSBpcyBwbGF5aW5nIGFuIGluY3JlYXNlZCByb2xlIGluIHByb21vdGluZyBDYXJld2lzZS5cXG5cXG5XZSBhbHNvIHZpc2l0IGxvY2FsIG9yZ2FuaXNhdGlvbnMgYW5kIGdyb3VwcyB0byBnaXZlIHByZXNlbnRhdGlvbnMgb24gcmVxdWVzdCBhbmQgd2Ugc2VlayBvdXQgcHJvbW90aW9uYWwgYWN0aXZpdGllcyBhcyBwYXJ0IG9mIHRoZSBvbmdvaW5nIG1hcmtldGluZyBjYW1wYWlnbi5cXG5cXG4qKkZFQlJVQVJZIDIwMTggRklHVVJFUyoqXFxuXFxuLSAtIC1cXG5cXG4qKl9SZWZlcnJhbHMgdG8gY2FyZSBmZWVzIHNwZWNpYWxpc3RzXyoqIC0gMjUuIFRoZSB0YXJnZXQgZm9yIHRoZSBudW1iZXIgb2YgcmVmZXJyYWxzIHRvIHRoZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgZm9yIEZlYnJ1YXJ5IGlzIDUyLiBUaGUgdGFyZ2V0IGZvciBGZWJydWFyeSAyMDE4IGhhcyBub3QgYmVlbiBtZXQuXFxuXFxuSG93ZXZlciwgMjUgcGVvcGxlIGhhdmUgcmVjZWl2ZWQgc29tZSBsZXZlbCBvZiBmaW5hbmNpYWwgYWR2aWNlIGZyb20gdGhlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyByYW5naW5nIGZyb20gYmFzaWMgdG8gc3BlY2lhbGlzdCBhZHZpY2UuICdCYXNpYyBhZHZpY2UnIGNhbiBpbnZvbHZlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBlbmdhZ2luZyBpbiBjb252ZXJzYXRpb25zIHdpdGggY2FsbGVycyBmb3IgaGFsZiBhbmQgaG91ciBvciBtb3JlIGR1cmluZyB3aGljaCB0aGV5IGFyZSBwcm92aW5nIGFkdmljZS5cXG5cXG5fKipBZ2UgVUsgV2VzdCBTdXNzZXgqKl8gLSBUaGUgbnVtYmVyIG9mIGluZGl2aWR1YWwgc2Vzc2lvbnMgaGVsZCBieSB0aGUgTW9uZXkgQWR2aWNlIFNlcnZpY2UgKHBlb3BsZSByZWNlaXZpbmcgYWR2aWNlIG9uIGEgc3BlY2lmaWMgYmVuZWZpdCkgZm9yIEZlYnJ1YXJ5IDIwMTggPSA1NzUuIFRoZSB0YXJnZXQgZm9yIEZlYnJ1YXJ5IDIwMTggaXMgNTUwIGFuZCBpdCBoYXMsIHRoZXJlZm9yZSBiZWVuIGV4Y2VlZGVkLlxcblxcblRoZSB2YWx1ZSBvZiBhZGRpdGlvbmFsIGJlbmVmaXRzIGFjY2Vzc2VkIGZvciBwZW9wbGUgZHVyaW5nIGZyb20gQXByaWwgLSBGZWJydWFyeSAyMDE4ID0gwqMyLDkxMSwzNTMuXFxuXFxuKipBY3Rpb25zIGJlaW5nIHRha2VuKipcXG5cXG4qIE1hcmtldGluZyBjYW1wYWlnbiBmb3IgMjAxNy0xOC4gVG8gdGFrZSBpbnRvIGFjY291bnQgYSBmb2N1cyBvbiB0aGUgdHJpYWwgc2l0ZXMgZm9yIHRoZSBBZHVsdHMnIFNlcnZpY2VzIG5ldyBhcHByb2FjaCB0byBkZWxpdmVyaW5nIGFkdWx0IHNvY2lhbCBjYXJlLlxcbiogUHJlc2VudGF0aW9ucyB0byBkb21pY2lsaWFyeSBjYXJlIHByb3ZpZGVyIGZvcnVtXFxuICAqIFBsYW5uaW5nIGZvciBmdXJ0aGVyIGNvdXBvbiBwcm9tb3Rpb25zXFxuKiBTdXJnZXJpZXMvc2VtaW5hcnMgaW4gcmVzaWRlbnRpYWwgY2FyZSBob21lcyBvbiByZXF1ZXN0IGZyb20gcHJvdmlkZXJzXFxuKiBSZW5ld2VkIGZvY3VzIG9uIHByb21vdGlvbnMgdG8gcmVzaWRlbnRpYWwgYW5kIGRvbWljaWxpYXJ5IGNhcmUgaG9tZSBwcm92aWRlcnMgLSBDb250cmFjdHMgRGVwYXJ0bWVudCBwbGF5aW5nIGEga2V5IHJvbGUuIFdlc3QgU3Vzc2V4IFBhcnRuZXJzIGluIENhcmUgaGF2ZSB1cGRhdGVkIHRoZWlyIHdlYnNpdGUgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCBDYXJld2lzZSBvbiB0aGVpciB3ZWJzaXRlLlxcblxcbioqRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ2FyZXdpc2UgdmlzaXQ6KiogWyoqd3d3Lndlc3RzdXNzZXhjb25uZWN0dG9zdXBwb3J0Lm9yZy9jYXJld2lzZSoqXVswXSoqLCBjYWxsIDAxMjQzIDY0MjEyMSBvciBlbWFpbDoqKiBbKipzb2NpYWxjYXJlQHdlc3RzdXNzZXguZ292LnVrKipdWzFdXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3RzdXNzZXhjb25uZWN0dG9zdXBwb3J0Lm9yZy9jYXJld2lzZVxcblsxXTogbWFpbHRvOnNvY2lhbGNhcmVAd2VzdHN1c3NleC5nb3YudWtcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIlRoZSBwZXJjZW50YWdlIG9mIEFkdWx0cyBTb2NpYWwgQ2FyZSBjdXN0b21lcnMgd2hvLCB3aGVuIHN1cnZleWVkLCBmZWx0IHRoZXkgaGFkIGNvbnRyb2wgb3ZlciB0aGVpciBkYWlseSBsaXZlc1wiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRvIG1haW50YWluIG9yIGltcHJvdmUgdGhlIHBlcmNlbnRhZ2Ugb2YgQWR1bHRzIFNvY2lhbCBDYXJlIGN1c3RvbWVycyB3aG8sIHdoZW4gc3VydmV5ZWQsIGZlbHQgdGhleSBoYWQgY29udHJvbCBvdmVyIHRoZWlyIGRhaWx5IGxpdmVzIHRvIDgwLjMlXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTYtMDMtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldF90eXBlIjoicmVsYXRpdmUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjgwLjMsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiZGQzaC1qeXNkIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwibWFpbnRhaW5cIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX19LFwic3RhcnRcIjpcIjIwMTUtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTUtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifSxcInR5cGVcIjpcInN0YXRpY1wifSxcIm5hbWVcIjpcInRyYWNraW5nIHRoZSAlIG9mIEFkdWx0cyBTb2NpYWwgQ2FyZSBjdXN0b21lcnMgd2hvLCB3aGVuIHN1cnZleWVkLCBmZWx0IHRoZXkgaGFkIGNvbnRyb2wgb3ZlciB0aGVpciBkYWlseSBsaXZlc1wiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjpmYWxzZX19In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDA5OjQzOjUyLjYxNVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToyMTo1MC4xNzlaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMDk6NDM6NTIuNjE1WiIsInRhcmdldF90b2xlcmFuY2UiOjUsImlkIjoicnBlai1hMmN0In0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJqOGJtLXh0bmIifSx7Im1ldGFkYXRhIjoiIiwiaWQiOiI4NHRpLWlmbnAifSx7Im1ldGFkYXRhIjoiIiwiaWQiOiIyZzdtLTNuYXIifV0sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTZUMDk6MzM6MDMuMzk2WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjIxOjUwLjMzOVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xNlQwOTozMzowMy4zOTZaIiwiY3JlYXRlZF9ieSI6IjNkcHYtanI4bSJ9LHsiaWQiOiIya2tqLW5ucXoiLCJuYW1lIjoiUXVhbGl0eSBvZiBjYXJlIGluIGhvbWVzIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFsaXR5IG9mIENhcmUgSG9tZXMgYW5kIENhcmUgcmVjZWl2ZWQgYXQgSG9tZSoqXFxuXFxuVGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uIChDUUMpIGlzIHRoZSBpbmRlcGVuZGVudCBpbnNwZWN0b3IgYW5kIHJlZ3VsYXRvciBvZiBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzIGluIEVuZ2xhbmQuXFxuXFxuVGhleSBtYWtlIHN1cmUgaGVhbHRoIGFuZCBzb2NpYWwgY2FyZSBzZXJ2aWNlcywgc3VjaCBhcyBDYXJlIEhvbWVzIGFuZCBDYXJlIGFuZCBTdXBwb3J0IGluIHBlb3BsZXPigJkgb3duIGhvbWVzIGFyZSBzYWZlLCBlZmZlY3RpdmUgYW5kIGhpZ2gtcXVhbGl0eS4gVGhlIENRQyBtb25pdG9yLCBpbnNwZWN0IGFuZCByZWd1bGF0ZSBzZXJ2aWNlcyB0byBtYWtlIHN1cmUgdGhhdCB0aGV5IG1lZXQgZnVuZGFtZW50YWwgc3RhbmRhcmRzIG9mIHF1YWxpdHkgYW5kIHNhZmV0eSBhbmQgdGhleSBwdWJsaXNoIHdoYXQgdGhleSBmaW5kIHRvIGhlbHAgcGVvcGxlIG1ha2UgaW5mb3JtZWQgZGVjaXNpb25zIGFib3V0IHRoZWlyIGNob2ljZSBvZiBjYXJlLlxcblxcblRoZSBDUUMgY2hhbmdlZCB0aGVpciBtb25pdG9yaW5nIHJlZ2ltZSBpbiBPY3RvYmVyIDIwMTQgdG8gZm9jdXMgb24gNSBrZXkgcXVlc3Rpb25zOlxcblxcbiogQXJlIHRoZXkgc2FmZT9cXG4qIEFyZSB0aGV5IGVmZmVjdGl2ZT9cXG4qIEFyZSB0aGV5IGNhcmluZz9cXG4qIEFyZSB0aGV5IHJlc3BvbnNpdmUgdG8gcGVvcGxl4oCZcyBuZWVkcz9cXG4qIEFyZSB0aGV5IHdlbGwtbGVkP1xcblxcbkluIG9yZGVyIHRvIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMgQ1FDIEluc3BlY3RvcnMgd2lsbCBnYXRoZXIgaW5mb3JtYXRpb24gYW5kIGludGVsbGlnZW5jZSBmcm9tIGEgcmFuZ2Ugb2Ygc291cmNlcyBpbmNsdWRpbmc6IExvY2FsIEF1dGhvcml0aWVzLCBOSFMgYW5kIHRoZSBDYXJlIFByb3ZpZGVyLCBhbmQgdGhlbiBjYXJyeSBvdXQgYW4gb24tc2l0ZSBpbnNwZWN0aW9uLlxcblxcbk9uY2UgdGhlIGluc3BlY3RvciBoYXMgY29uc2lkZXJlZCBhbGwgb2YgdGhlIGV2aWRlbmNlIHJlbGF0ZWQgdG8gZWFjaCBxdWVzdGlvbiBhIGp1ZGdlbWVudCBpcyBtYWRlIG9uIHRoZSBjb21wbGlhbmNlIHJhdGluZyBmb3IgZWFjaCBxdWVzdGlvbiBhbmQgYW4gb3ZlcmFsbCByYXRpbmcgZm9yIHRoZSBjYXJlIHByb3ZpZGVyLlxcblxcbioqVGhlcmUgYXJlIGZvdXIgcmF0aW5ncyB3aGljaCB0aGUgQ1FDIGdpdmUgdG8gaGVhbHRoIGFuZCBzb2NpYWwgY2FyZSBzZXJ2aWNlczogb3V0c3RhbmRpbmcsIGdvb2QsIHJlcXVpcmVzIGltcHJvdmVtZW50IGFuZCBpbmFkZXF1YXRlLioqXFxuXFxuKipPdXRzdGFuZGluZyoqIC0gVGhlIHNlcnZpY2UgaXMgcGVyZm9ybWluZyBleGNlcHRpb25hbGx5IHdlbGwuXFxuXFxuKipHb29kKiogLSBUaGUgc2VydmljZSBpcyBwZXJmb3JtaW5nIHdlbGwgYW5kIG1lZXRpbmcgb3VyIGV4cGVjdGF0aW9ucy5cXG5cXG4qKlJlcXVpcmVzIGltcHJvdmVtZW50KiogLSBUaGUgc2VydmljZSBpc24ndCBwZXJmb3JtaW5nIGFzIHdlbGwgYXMgaXQgc2hvdWxkIGFuZCB3ZSBoYXZlIHRvbGQgdGhlIHNlcnZpY2UgaG93IGl0IG11c3QgaW1wcm92ZS5cXG5cXG4qKkluYWRlcXVhdGUqKiAtIFRoZSBzZXJ2aWNlIGlzIHBlcmZvcm1pbmcgYmFkbHkgYW5kIHdlJ3ZlIHRha2VuIGFjdGlvbiBhZ2FpbnN0IHRoZSBwZXJzb24gb3Igb3JnYW5pc2F0aW9uIHRoYXQgcnVucyBpdC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBQZXJjZW50YWdlIG9mIENhcmUgSG9tZXMgcmF0ZWQgYXMgR29vZCBvciBPdXRzdGFuZGluZyBieSB0aGUgQ2FyZSBRdWFsaXR5IENvbW1pc3Npb24gKENRQykgZHVyaW5nIDIwMTcgZm9sbG93ZWQgYW4gdXB3YXJkIHRyZW5kIGJleW9uZCB0aGUgdGFyZ2V0LiBUaGlzIGlzIHBhcnRseSBkdWUgdG8gdGhlIHByaW9yaXRpc2F0aW9uIG9mIGluc3BlY3Rpb25zIGZvY3VzaW5nIG9uIHRob3NlIFByb3ZpZGVycyB3aG9tIHdlcmUgcmF0ZWQgbm9uLWNvbXBsaWFudCB1bmRlciB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lIGFuZCBhbHNvLCBwYXJ0bHkgZHVlIHRvIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBvdGhlciBjb21taXNzaW9uZXJzIG9mIHNlcnZpY2VzIGluY3JlYXNpbmcgdGhlIHN1cHBvcnQgYW5kIGNvYWNoaW5nIG9mZmVyZWQgdG8gY2FyZSBtYXJrZXRzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgZW5oYW5jZWQgcXVhbGl0eSBvZiBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5EdXJpbmcgMjAxNyBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbuKAnHJlZ3VsYXRlIHByaW1hcnkgbWVkaWNhbCBzZXJ2aWNlcyBhbmQgYWR1bHQgc29jaWFsIGNhcmUgc2VydmljZXMsIGltcHJvdmUgdGhlIHN0cnVjdHVyZSBvZiByZWdpc3RyYXRpb24sYW5kIGNsYXJpZnkgdGhlaXIgZGVmaW5pdGlvbiBvZiByZWdpc3RlcmVkIHByb3ZpZGVycywgbW9uaXRvciwgaW5zcGVjdCBhbmQgcmF0ZSBuZXcgbW9kZWxzIG9mIGNhcmUgYW5kIGxhcmdlIG9yIGNvbXBsZXggcHJvdmlkZXJzLCB1c2UgdGhlaXIgdW5pcXVlIGtub3dsZWRnZSB0byBlbmNvdXJhZ2UgaW1wcm92ZW1lbnRzIGluIHRoZSBxdWFsaXR5IG9mIGNhcmUgaW4gbG9jYWwgYXJlYXMsIGNhcnJ5IG91dCB0aGVpciByb2xlIGluIHJlbGF0aW9uIHRvIHRoZSBmaXQgYW5kIHByb3BlciBwZXJzb25zIHJlcXVpcmVtZW504oCdXFxuXFxuVGhlIGNvbnN1bHRhdGlvbnMgcHJvcG9zZWQgYSBudW1iZXIgb2YgY2hhbmdlcyB0byB0aGUgd2F5IHRoYXQgY2FyZSBzZXJ2aWNlcyBhcmUgcmVnaXN0ZXJlZCBhbmQgaW5zcGVjdGVkIGJ5IHRoZSBDUUM6XFxuXFxuKiBLZXkgTGluZXMgb2YgRW5xdWlyeSAoS0xPRXMpLCBpbmNsdWRpbmcgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBzZXBhcmF0ZSBLTE9FcyBjdXJyZW50bHkgdXNlZCBmb3IgY29tbXVuaXR5IGFuZCByZXNpZGVudGlhbCBiYXNlZCBzZXJ2aWNlcyBpbnRvIG9uZSBuZXcgZnJhbWV3b3JrLiBUaGVyZSBhcmUgMyBhZGRpdGlvbmFsIGFkdWx0IHNvY2lhbCBjYXJlIEtleSBMaW5lcyBPZiBFbnF1aXJ5ICh0aGF0IHN1cHBvcnQgdGhlIGZpdmUga2V5IHF1ZXN0aW9ucykgd2l0aCBuZXcgcHJvbXB0cyBpbmNsdWRlZCBpbiB0aGUgc3ViLWNyaXRlcmlhIHVuZGVyIGVhY2ggS0xPRS5cXG4qIENoYW5nZXMgdG8gZnJlcXVlbmN5IG9mIGluc3BlY3Rpb25zLCBpbmNsdWRpbmcgaW5jcmVhc2luZyB0aGUgbWF4aW11bSBpbnRlcnZhbCBiZXR3ZWVuIHJhdGluZ3MgZm9yIHNlcnZpY2VzIHJhdGluZyBHb29kIG9yIE91dHN0YW5kaW5nIGZyb20gMjQtbW9udGhzIHRvIDMwLW1vbnRocy5cXG4qIENoYW5nZXMgdG8gcmVzcG9uc2Ugd2hlcmUgc2VydmljZXMgYXJlIHJlcGVhdGVkbHkgcmF0ZWQgYXMgUmVxdWlyZXMgSW1wcm92ZW1lbnRcXG4qIFB1YmxpY2F0aW9uIG9mIHJlZnJlc2hlZCBndWlkYW5jZSBmb3Ig4oCYZml0IGFuZCBwcm9wZXLigJkgcGVyc29ucyByZXF1aXJlbWVudHMgaW4gcmVsYXRpb24gdG8gcmVnaXN0cmF0aW9uIHRvIGZvciBQcm92aWRlcnMgYW5kIGltcHJvdmVkIGluZm9ybWF0aW9uIHNoYXJpbmcuXFxuKiBJbnRyb2R1Y3Rpb24gb2YgYW4gb25saW5lIFByb3ZpZGVyIEluZm9ybWF0aW9uIENvbGxlY3Rpb24gd2hpY2ggd2lsbCBhbGxvdyBjYXJlIHByb3ZpZGVycyB0byBzdWJtaXQgdXAtdG8tZGF0ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcXVhbGl0eSBvZiB0aGUgc2VydmljZSB0aGV5IHByb3ZpZGUgZGlyZWN0bHkgdG8gdGhlIENRQy5cXG5cXG5BZHVsdCBTb2NpYWwgQ2FyZSBTZXJ2aWNlcyB3ZXJlIG5vdCBwbGFubmVkIHRvIGJlIGluc3BlY3RlZCB1bmRlciB0aGUgbmV3IHJldmlzZWQgZnJhbWV3b3JrIHVudGlsIE5vdmVtYmVyIDIwMTcgYW5kIHRoZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gaW5zcGVjdGlvbnMgZm9yIHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nIGlzIGR1ZSB0byBiZSBpbmNyZWFzZWQgZnJvbSAyNCBtb250aHMgdG8gMzAgbW9udGhzIGZyb20gQXByaWwgMjAxOCwgdGhlcmVmb3JlOyBpdCBtYXkgYmUgc29tZSB0aW1lIGJlZm9yZSB0aGUgaW1wYWN0IG9mIHRoaXMgaXMgcmVhbGlzZWQgYnV0IGFzIENRQyBpbXBsZW1lbnQgdGhlIG5ldyBpbnNwZWN0aW9uIGZyYW1ld29yayB0aGlzIHdpbGwgYmUgYSBjaGFuZ2UgZm9yIHByb3ZpZGVycywgY29uc2VxdWVudGx5IHdlIGFudGljaXBhdGUgdGhlcmUgYmVpbmcgYSBzbGlnaHQgZGVjcmVhc2UgaW4gdGhlIHF1YWxpdHkgcmF0aW5ncyBpbiB0aGUgbGFzdCAyIHF1YXJ0ZXJzIG9mIHRoZSB5ZWFyIChzZXJ2aWNlcyByYXRlZCBHb29kIGFuZCBPdXRzdGFuZGluZykgY29tcGFyZWQgdG8gdGhvc2UgZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocyBzdGFiaWxpc2UuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIFBlcmNlbnRhZ2Ugb2YgQ2FyZSBIb21lcyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbiAoQ1FDKSBkdXJpbmcgMjAxNi8xNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlbWFya2V0cyB0byBwcm9tb3RlIHRoZSBzdXN0YWluaW5nIG9mIGVuaGFuY2VkIHF1YWxpdHkgb2YgY2FyZSBmb3IgcmVzaWRlbnRzIG9mIHRoZSBDb3VudHkuXFxuXFxuQXQgdGhlIHN0YXJ0IG9mIDIwMTcgQ1FDIGNvbW1lbmNlZCBhIHB1YmxpYyBjb25zdWx0YXRpb24gcHJvY2VzcyB0byBzZWVrIHZpZXdzIG9uIHRoZWlyIHByb3Bvc2FscyB0bztcXG5cXG5f4oCccmVndWxhdGUgcHJpbWFyeSBtZWRpY2FsIHNlcnZpY2VzIGFuZCBhZHVsdCBzb2NpYWwgY2FyZSBzZXJ2aWNlcywgaW1wcm92ZSB0aGUgc3RydWN0dXJlIG9mIHJlZ2lzdHJhdGlvbixhbmQgY2xhcmlmeSB0aGVpciBkZWZpbml0aW9uIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLCBtb25pdG9yLCBpbnNwZWN0IGFuZCByYXRlIG5ldyBtb2RlbHMgb2YgY2FyZSBhbmQgbGFyZ2Ugb3IgY29tcGxleCBwcm92aWRlcnMsIHVzZSB0aGVpciB1bmlxdWUga25vd2xlZGdlIHRvIGVuY291cmFnZSBpbXByb3ZlbWVudHMgaW4gdGhlIHF1YWxpdHkgb2YgY2FyZSBpbiBsb2NhbCBhcmVhcywgY2Fycnkgb3V0IHRoZWlyIHJvbGUgaW4gcmVsYXRpb24gdG8gdGhlIGZpdCBhbmQgcHJvcGVyIHBlcnNvbnMgcmVxdWlyZW1lbnTigJ1fXFxuXFxuVGhlIGZpcnN0IHBoYXNlIG9mIHRoZSBjb25zdWx0YXRpb24gcHJvcG9zZWQgYSBudW1iZXIgb2YgY2hhbmdlIHN0byB0aGUgS2V5IExpbmVzIG9mIEVucXVpcnkgKEtMT0VzKSwgaW5jbHVkaW5nIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgc2VwYXJhdGUgS0xPRXMgY3VycmVudGx5IHVzZWQgZm9yIGNvbW11bml0eSBhbmQgcmVzaWRlbnRpYWwgYmFzZWQgc2VydmljZXMgaW50byBvbmUgbmV3IGZyYW1ld29yay4gVGhlcmUgYXJlIDMgYWRkaXRpb25hbCBhZHVsdCBzb2NpYWwgY2FyZSBLZXkgTGluZXMgT2YgRW5xdWlyeSAodGhhdCBzdXBwb3J0IHRoZSBmaXZlIGtleSBxdWVzdGlvbnMpIHdpdGggbmV3IHByb21wdHMgaW5jbHVkZWQgaW4gdGhlIHN1Yi1jcml0ZXJpYSB1bmRlciBlYWNoIEtMT0UuIEFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdpbGwgbm90IGJlIGluc3BlY3RlZCB1bmRlciB0aGUgbmV3IHJldmlzZWQgZnJhbWV3b3JrIHVudGlsIE5vdmVtYmVyIDIwMTcuIENRQyBhcmUgY3VycmVudGx5IGRldmVsb3BpbmcgdGhlaXIgbmV4dCBwaGFzZSBvZiByZWd1bGF0aW9uIHdpdGggY29uc3VsdGF0aW9uIDIgZHVlIHRvIGNsb3NlIGluIEF1Z3VzdCAyMDE3LiBDb25zdWx0YXRpb24gMyBpcyBkdWUgdG8gdGFrZSBwbGFjZSBsYXRlciBpbiB0aGUgeWVhciAoMjAxNy8xOCkuIEFzIENRQyBpbXBsZW1lbnQgdGhlIG5ldyBpbnNwZWN0aW9uIGZyYW1ld29yayB0aGlzIHdpbGwgYmUgYSBjaGFuZ2UgZm9yIHByb3ZpZGVycywgY29uc2VxdWVudGx5IHdlIGFudGljaXBhdGUgdGhlcmUgYmVpbmcgYSBzbGlnaHQgZGVjcmVhc2UgaW4gdGhlIHF1YWxpdHkgcmF0aW5ncyBpbiB0aGUgbGFzdCAyIHF1YXJ0ZXJzIG9mIHRoZSB5ZWFyIChzZXJ2aWNlcyByYXRlZCBHb29kIGFuZCBPdXRzdGFuZGluZykgY29tcGFyZWQgdG8gdGhvc2UgZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocyBzdGFiaWxpc2UuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBwZXJjZW50YWdlIG9mIENhcmUgSG9tZXMgcmF0ZWQgYXMgR29vZCBvciBPdXRzdGFuZGluZyBieSB0aGUgQ1FDIChDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbikgZHVyaW5nIDIwMTYvMTcgZm9sbG93ZWQgYW4gdXB3YXJkIHRyZW5kIGJleW9uZCB0aGUgdGFyZ2V0LiBUaGlzIGlzIHBhcnRseSBkdWUgdG8gdGhlIHByaW9yaXRpc2F0aW9uIG9mIGluc3BlY3Rpb25zIGZvY3VzaW5nIG9uIHRob3NlIFByb3ZpZGVycyB3aG9tIHdlcmUgcmF0ZWQgbm9uLWNvbXBsaWFudCB1bmRlciB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lIGFuZCBhbHNvLCBwYXJ0bHkgZHVlIHRvIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBvdGhlciBjb21taXNzaW9uZXJzIG9mIHNlcnZpY2VzIGluY3JlYXNpbmcgdGhlIHN1cHBvcnQgYW5kIGNvYWNoaW5nIG9mZmVyZWQgdG8gY2FyZSBtYXJrZXRzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgZW5oYW5jZWQgcXVhbGl0eSBvZiBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BdCB0aGUgc3RhcnQgb2YgMjAxNyB0aGUgQ1FDIGNvbW1lbmNlZCBhIHB1YmxpYyBjb25zdWx0YXRpb24gcHJvY2VzcyB0byBzZWVrIHZpZXdzIG9uIHRoZWlyIHByb3Bvc2FscyB0bztcXG5cXG7igJxyZWd1bGF0ZSBwcmltYXJ5IG1lZGljYWwgc2VydmljZXMgYW5kIGFkdWx0IHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBpbXByb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgcmVnaXN0cmF0aW9uLCBhbmQgY2xhcmlmeSB0aGVpciBkZWZpbml0aW9uIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLCBtb25pdG9yLCBpbnNwZWN0IGFuZCByYXRlIG5ldyBtb2RlbHMgb2YgY2FyZSBhbmQgbGFyZ2Ugb3IgY29tcGxleCBwcm92aWRlcnMsIHVzZSB0aGVpciB1bmlxdWUga25vd2xlZGdlIHRvIGVuY291cmFnZSBpbXByb3ZlbWVudHMgaW4gdGhlIHF1YWxpdHkgb2YgY2FyZSBpbiBsb2NhbCBhcmVhcywgY2Fycnkgb3V0IHRoZWlyIHJvbGUgaW4gcmVsYXRpb24gdG8gdGhlIGZpdCBhbmQgcHJvcGVyIHBlcnNvbnMgcmVxdWlyZW1lbnTigJ1cXG5cXG5UaGUgZmlyc3QgcGhhc2Ugb2YgdGhlIGNvbnN1bHRhdGlvbiBwcm9wb3NlZCBhIG51bWJlciBvZiBjaGFuZ2VzIHRvIHRoZSBLZXkgTGluZXMgb2YgRW5xdWlyeSAoS0xPRXMpLCBpbmNsdWRpbmcgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBzZXBhcmF0ZSBLTE9FcyBjdXJyZW50bHkgdXNlZCBmb3IgY29tbXVuaXR5IGFuZCByZXNpZGVudGlhbCBiYXNlZCBzZXJ2aWNlcyBpbnRvIG9uZSBuZXcgZnJhbWV3b3JrLiBUaGVyZSBhcmUgMyBhZGRpdGlvbmFsIGFkdWx0IHNvY2lhbCBjYXJlIEtMT0VzICh0aGF0IHN1cHBvcnQgdGhlIGZpdmUga2V5IHF1ZXN0aW9ucykgd2l0aCBuZXcgcHJvbXB0cyBpbmNsdWRlZCBpbiB0aGUgc3ViLWNyaXRlcmlhLiBBZHVsdCBTb2NpYWwgQ2FyZSBTZXJ2aWNlcyB3aWxsIG5vdCBiZSBpbnNwZWN0ZWQgdW5kZXIgdGhlIG5ldyByZXZpc2VkIGZyYW1ld29yayB1bnRpbCBOb3ZlbWJlciAyMDE3LiBUaGUgQ1FDIGFyZSBjdXJyZW50bHkgZGV2ZWxvcGluZyB0aGVpciBuZXh0IHBoYXNlIG9mIHJlZ3VsYXRpb24gd2l0aCBjb25zdWx0YXRpb24gMiBkdWUgdG8gY2xvc2UgaW4gQXVndXN0IDIwMTcuIENvbnN1bHRhdGlvbiAzIGlzIGR1ZSB0byB0YWtlIHBsYWNlIGxhdGVyIGluIHRoZSB5ZWFyICgyMDE3LzE4KS4gQXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IHR3byBxdWFydGVycyBvZiB0aGUgeWVhciAoc2VydmljZXMgcmF0ZWQgR29vZCBhbmQgT3V0c3RhbmRpbmcpIGNvbXBhcmVkIHRvIHRob3NlIGR1cmluZyB0aGUgbGFzdCAxMi1tb250aHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5MYXRlc3QgZmlndXJlIGNvbnRpbnVlcyBvbiBhbiB1cHdhcmQgdHJlbmQgc2hvd2luZyBxdWFsaXR5IGluIGNhcmUgaG9tZXMgaXMgaW5jcmVhc2luZy4gVGhpcyBpbmNyZWFzZSBtYXkgYmUgZHVlIHRvIHRoZSBwcmlvcml0aXNhdGlvbiBvZiBpbnNwZWN0aW9ucyBieSB0aGUgQ1FDLCBhcyB0aGV5IGltcGxlbWVudGVkIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUsIGkuZS4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSBmb2N1c2VkIGluaXRpYWxseSBvbiB0aG9zZSBwcm92aWRlcnMgd2hvbSB3ZXJlIHJhdGVkIG5vbi1jb21wbGlhbnQgdW5kZXIgdGhlIHByZXZpb3VzIGluc3BlY3Rpb24gcmVnaW1lLiBBZGRpdGlvbmFsbHksIGR1cmluZyB0aGUgcGFzdCB5ZWFyIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBvdGhlciBjb21taXNzaW9uZXJzIG9mIHNlcnZpY2VzIGhhdmUgaW5jcmVhc2VkIHN1cHBvcnQgb2ZmZXJlZCB0byB0aGUgY2FyZSBtYXJrZXRzIGFuZCBvZmZlcmVkIGFkdmljZSBhbmQgZ3VpZGFuY2UgdG8gY2FyZSBwcm92aWRlcnMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBoaWdoIHF1YWxpdHkgY2FyZSBmb3IgcmVzaWRlbnRzIG9mIHRoZSBDb3VudHkuXFxuXFxuQXMgd2UgbW92ZSBpbnRvIHRoZSBuZXh0IHllYXIsIGFuZCB0aGUgQ1FDIGNvbXBsZXRlIHRoZWlyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBpbnNwZWN0aW9uIHJlZ2ltZSBtb3ZpbmcgdG8gZm9jdXNlZCBpbnNwZWN0aW9ucywgd2UgZXhwZWN0IHRvIHNlZSB0aGUgaW5jcmVhc2VzIHNlZW4gZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocyBzdGFiaWxpc2UuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbXByb3ZlIHRoZSBudW1iZXIgb2YgY2FyZSBob21lIHByb3ZpZGVycyByYXRlZCBnb29kIG9yIG91dHN0YW5kaW5nIGJ5IHRoZSBDUUMgdG8gNjAlIG9yIGhpZ2hlclwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOmZhbHNlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUbyBtYWludGFpbiBvciBpbmNyZWFzZSB0aGUgcGVyY2VudGFnZSBvZiBjYXJlIGhvbWUgcHJvdmlkZXJzIHJhdGVkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgdG8gNjAlIG9yIGFib3ZlLlwiLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzLzZEMDcxQzQ0LTg5OUEtNDVEMC04NDkwLTIzQTE1RkFEMDgyM1wiLFwiaWNvblwiOlwiYnVpbGRpbmdcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNS0wMy0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0Ijo2MCwidGFyZ2V0X3R5cGUiOiJyZWxhdGl2ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6NjAsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiNWdwOS05bTVzIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwibWFpbnRhaW5cIixcInRhcmdldF90eXBlXCI6XCJyZWxhdGl2ZVwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSByYXRpbyBvZiBjYXJlIGhvbWUgcHJvdmlkZXJzIHJhdGVkIGdvb2Qgb3Igb3V0c3RhbmRpbmdcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMDNUMTA6Mzk6MTMuMzY5WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjI1OjQ1LjM1M1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0wM1QxMDozOToxMy4zNjlaIiwidGFyZ2V0X3RvbGVyYW5jZSI6OCwiaWQiOiI1bml4LXdnYnUifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMDNUMTA6Mzk6MTMuNTA5WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjI1OjQ1LjQ0M1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0wM1QxMDozOToxMy41MDlaIiwiY3JlYXRlZF9ieSI6IjNkcHYtanI4bSJ9LHsiaWQiOiJheGpwLXZhOG4iLCJuYW1lIjoiUXVhbGl0eSBvZiBjYXJlIHJlY2VpdmVkIGF0IGhvbWUiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YWxpdHkgb2YgQ2FyZSBIb21lcyBhbmQgQ2FyZSByZWNlaXZlZCBhdCBIb21lKipcXG5cXG5UaGUgQ2FyZSBRdWFsaXR5IENvbW1pc3Npb24gKENRQykgaXMgdGhlIGluZGVwZW5kZW50IGluc3BlY3RvciBhbmQgcmVndWxhdG9yIG9mIGhlYWx0aCBhbmQgc29jaWFsIGNhcmUgc2VydmljZXMgaW4gRW5nbGFuZC5cXG5cXG5UaGV5IG1ha2Ugc3VyZSBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBzdWNoIGFzIENhcmUgSG9tZXMgYW5kIENhcmUgYW5kIFN1cHBvcnQgaW4gcGVvcGxlc+KAmSBvd24gaG9tZXMgYXJlIHNhZmUsIGVmZmVjdGl2ZSBhbmQgaGlnaC1xdWFsaXR5LiBUaGUgQ1FDIG1vbml0b3IsIGluc3BlY3QgYW5kIHJlZ3VsYXRlIHNlcnZpY2VzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXkgbWVldCBmdW5kYW1lbnRhbCBzdGFuZGFyZHMgb2YgcXVhbGl0eSBhbmQgc2FmZXR5IGFuZCB0aGV5IHB1Ymxpc2ggd2hhdCB0aGV5IGZpbmQgdG8gaGVscCBwZW9wbGUgbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgdGhlaXIgY2hvaWNlIG9mIGNhcmUuXFxuXFxuVGhlIENRQyBjaGFuZ2VkIHRoZWlyIG1vbml0b3JpbmcgcmVnaW1lIGluIE9jdG9iZXIgMjAxNCB0byBmb2N1cyBvbiA1IGtleSBxdWVzdGlvbnM6XFxuXFxuQXJlIHRoZXkgc2FmZT9cXG5cXG5BcmUgdGhleSBlZmZlY3RpdmU/XFxuXFxuQXJlIHRoZXkgY2FyaW5nP1xcblxcbkFyZSB0aGV5IHJlc3BvbnNpdmUgdG8gcGVvcGxl4oCZcyBuZWVkcz9cXG5cXG5BcmUgdGhleSB3ZWxsLWxlZD9cXG5cXG5JbiBvcmRlciB0byBhbnN3ZXIgdGhlc2UgcXVlc3Rpb25zIENRQyBJbnNwZWN0b3JzIHdpbGwgZ2F0aGVyIGluZm9ybWF0aW9uIGFuZCBpbnRlbGxpZ2VuY2UgZnJvbSBhIHJhbmdlIG9mIHNvdXJjZXMgaW5jbHVkaW5nOiBMb2NhbCBBdXRob3JpdGllcywgTkhTIGFuZCB0aGUgQ2FyZSBQcm92aWRlciwgYW5kIHRoZW4gY2Fycnkgb3V0IGFuIG9uLXNpdGUgaW5zcGVjdGlvbi4gT25jZSB0aGUgaW5zcGVjdG9yIGhhcyBjb25zaWRlcmVkIGFsbCBvZiB0aGUgZXZpZGVuY2UgcmVsYXRlZCB0byBlYWNoIHF1ZXN0aW9uIGEganVkZ2VtZW50IGlzIG1hZGUgb24gdGhlIGNvbXBsaWFuY2UgcmF0aW5nIGZvciBlYWNoIHF1ZXN0aW9uIGFuZCBhbiBvdmVyYWxsIHJhdGluZyBmb3IgdGhlIGNhcmUgcHJvdmlkZXIuXFxuXFxuKipUaGVyZSBhcmUgZm91ciByYXRpbmdzIHdoaWNoIHRoZSBDUUMgZ2l2ZSB0byBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzOiBvdXRzdGFuZGluZywgZ29vZCwgcmVxdWlyZXMgaW1wcm92ZW1lbnQgYW5kIGluYWRlcXVhdGUuKipUXFxuXFxuKipPdXRzdGFuZGluZyoqIC0gVGhlIHNlcnZpY2UgaXMgcGVyZm9ybWluZyBleGNlcHRpb25hbGx5IHdlbGwuXFxuXFxuKipHb29kKiogLSBUaGUgc2VydmljZSBpcyBwZXJmb3JtaW5nIHdlbGwgYW5kIG1lZXRpbmcgb3VyIGV4cGVjdGF0aW9ucy5cXG5cXG4qKlJlcXVpcmVzIGltcHJvdmVtZW50KiogLSBUaGUgc2VydmljZSBpc24ndCBwZXJmb3JtaW5nIGFzIHdlbGwgYXMgaXQgc2hvdWxkIGFuZCB3ZSBoYXZlIHRvbGQgdGhlIHNlcnZpY2UgaG93IGl0IG11c3QgaW1wcm92ZS5cXG5cXG4qKkluYWRlcXVhdGUqKiAtIFRoZSBzZXJ2aWNlIGlzIHBlcmZvcm1pbmcgYmFkbHkgYW5kIHdlJ3ZlIHRha2VuIGFjdGlvbiBhZ2FpbnN0IHRoZSBwZXJzb24gb3Igb3JnYW5pc2F0aW9uIHRoYXQgcnVucyBpdC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBQZXJjZW50YWdlIG9mIENhcmUgYXQgSG9tZSBQcm92aWRlcnMgcmF0ZWQgYXMgR29vZCBvciBPdXRzdGFuZGluZyBieSB0aGUgQ2FyZSBRdWFsaXR5IENvbW1pc3Npb24oQ1FDKSBkdXJpbmcgMjAxNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2ZpIG5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkR1cmluZyAyMDE3IENRQyBjb21tZW5jZWQgYSBwdWJsaWMgY29uc3VsdGF0aW9uIHByb2Nlc3MgdG8gc2VlayB2aWV3cyBvbiB0aGVpciBwcm9wb3NhbHMgdG87XFxuXFxu4oCccmVndWxhdGUgcHJpbWFyeSBtZWRpY2FsIHNlcnZpY2VzIGFuZCBhZHVsdCBzb2NpYWwgY2FyZSBzZXJ2aWNlcywgaW1wcm92ZSB0aGUgc3RydWN0dXJlIG9mIHJlZ2lzdHJhdGlvbixhbmQgY2xhcmlmeSB0aGVpciBkZWZpbml0aW9uIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLCBtb25pdG9yLCBpbnNwZWN0IGFuZCByYXRlIG5ldyBtb2RlbHMgb2YgY2FyZSBhbmQgbGFyZ2Ugb3IgY29tcGxleCBwcm92aWRlcnMsIHVzZSB0aGVpciB1bmlxdWUga25vd2xlZGdlIHRvIGVuY291cmFnZSBpbXByb3ZlbWVudHMgaW4gdGhlIHF1YWxpdHkgb2YgY2FyZSBpbiBsb2NhbCBhcmVhcywgY2Fycnkgb3V0IHRoZWlyIHJvbGUgaW4gcmVsYXRpb24gdG8gdGhlIGZpdCBhbmQgcHJvcGVyIHBlcnNvbnMgcmVxdWlyZW1lbnTigJ1cXG5cXG5UaGUgY29uc3VsdGF0aW9ucyBwcm9wb3NlZCBhIG51bWJlciBvZiBjaGFuZ2VzIHRvIHRoZSB3YXkgdGhhdCBjYXJlIHNlcnZpY2VzIGFyZSByZWdpc3RlcmVkIGFuZCBpbnNwZWN0ZWQgYnkgdGhlIENRQzpcXG5cXG4qIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS2V5IExpbmVzIE9mIEVucXVpcnkgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZSBzdWItY3JpdGVyaWEgdW5kZXIgZWFjaCBLTE9FLlxcblxcbiogQ2hhbmdlcyB0byBmcmVxdWVuY3kgb2YgaW5zcGVjdGlvbnMsIGluY2x1ZGluZyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gcmF0aW5ncyBmb3Igc2VydmljZXMgcmF0aW5nIEdvb2Qgb3IgT3V0c3RhbmRpbmcgZnJvbSAyNC1tb250aHMgdG8gMzAtbW9udGhzLlxcblxcbiogQ2hhbmdlcyB0byByZXNwb25zZSB3aGVyZSBzZXJ2aWNlcyBhcmUgcmVwZWF0ZWRseSByYXRlZCBhcyBSZXF1aXJlcyBJbXByb3ZlbWVudFxcblxcbiogUHVibGljYXRpb24gb2YgcmVmcmVzaGVkIGd1aWRhbmNlIGZvciDigJhmaXQgYW5kIHByb3BlcuKAmSBwZXJzb25zIHJlcXVpcmVtZW50cyBpbiByZWxhdGlvbiB0byByZWdpc3RyYXRpb24gdG8gZm9yIFByb3ZpZGVycyBhbmQgaW1wcm92ZWQgaW5mb3JtYXRpb24gc2hhcmluZy5cXG5cXG4qIEludHJvZHVjdGlvbiBvZiBhbiBvbmxpbmUgUHJvdmlkZXIgSW5mb3JtYXRpb24gQ29sbGVjdGlvbiB3aGljaCB3aWxsIGFsbG93IGNhcmUgcHJvdmlkZXJzIHRvIHN1Ym1pdCB1cC10by1kYXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWFsaXR5IG9mIHRoZSBzZXJ2aWNlIHRoZXkgcHJvdmlkZSBkaXJlY3RseSB0byB0aGUgQ1FDLlxcblxcbkFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdlcmUgbm90IHBsYW5uZWQgdG8gYmUgaW5zcGVjdGVkIHVuZGVyIHRoZSBuZXcgcmV2aXNlZCBmcmFtZXdvcmsgdW50aWwgTm92ZW1iZXIgMjAxNyBhbmQgdGhlIG1heGltdW0gaW50ZXJ2YWwgYmV0d2VlbiBpbnNwZWN0aW9ucyBmb3Igc2VydmljZXMgcmF0ZWQgR29vZCBhbmQgT3V0c3RhbmRpbmcgaXMgZHVlIHRvIGJlIGluY3JlYXNlZCBmcm9tIDI0IG1vbnRocyB0byAzMCBtb250aHMgZnJvbSBBcHJpbCAyMDE4LCB0aGVyZWZvcmU7IGl0IG1heSBiZSBzb21lIHRpbWUgYmVmb3JlIHRoZSBpbXBhY3Qgb2YgdGhpcyBpcyByZWFsaXNlZCBidXQgYXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgUGVyY2VudGFnZSBvZiBDYXJlIGF0IEhvbWUgUHJvdmlkZXJzIHJhdGVkIGFzIEdvb2Qgb3IgT3V0c3RhbmRpbmcgYnkgdGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uKENRQykgZHVyaW5nIDIwMTYvMTcgZm9sbG93ZWQgYW4gdXB3YXJkIHRyZW5kIGJleW9uZCB0aGUgdGFyZ2V0LiBUaGlzIGlzIHBhcnRseSBkdWUgdG8gdGhlIHByaW9yaXRpc2F0aW9uIG9mIGluc3BlY3Rpb25zIGZvY3VzaW5nIG9uIHRob3NlIFByb3ZpZGVycyB3aG9tIHdlcmUgcmF0ZWQgbm9uLWNvbXBsaWFudCB1bmRlciB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lIGFuZCBhbHNvLCBwYXJ0bHkgZHVlIHRvIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBvdGhlciBjb21taXNzaW9uZXJzIG9mIHNlcnZpY2VzIGluY3JlYXNpbmcgdGhlIHN1cHBvcnQgYW5kIGNvYWNoaW5nIG9mZmVyZWQgdG8gY2FyZSBtYXJrZXRzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgZW5oYW5jZWQgcXVhbGl0eSBvZiBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BdCB0aGUgc3RhcnQgb2YgMjAxNyBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbsKgX+KAnHJlZ3VsYXRlIHByaW1hcnkgbWVkaWNhbCBzZXJ2aWNlcyBhbmQgYWR1bHQgc29jaWFsIGNhcmUgc2VydmljZXMsIGltcHJvdmUgdGhlIHN0cnVjdHVyZSBvZiByZWdpc3RyYXRpb24sYW5kIGNsYXJpZnkgdGhlaXIgZGVmaW5pdGlvbiBvZiByZWdpc3RlcmVkIHByb3ZpZGVycywgbW9uaXRvciwgaW5zcGVjdCBhbmQgcmF0ZSBuZXcgbW9kZWxzIG9mIGNhcmUgYW5kIGxhcmdlIG9yIGNvbXBsZXggcHJvdmlkZXJzLCB1c2UgdGhlaXIgdW5pcXVlIGtub3dsZWRnZSB0byBlbmNvdXJhZ2UgaW1wcm92ZW1lbnRzIGluIHRoZSBxdWFsaXR5IG9mIGNhcmUgaW4gbG9jYWwgYXJlYXMsIGNhcnJ5IG91dCB0aGVpciByb2xlIGluIHJlbGF0aW9uIHRvIHRoZSBmaXQgYW5kIHByb3BlciBwZXJzb25zIHJlcXVpcmVtZW504oCdX1xcblxcblRoZSBmaXJzdCBwaGFzZSBvZiB0aGUgY29uc3VsdGF0aW9uIHByb3Bvc2VkIGEgbnVtYmVyIG9mIGNoYW5nZXMgdG8gdGhlIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS2V5IExpbmVzIE9mIEVucXVpcnkgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZXN1Yi1jcml0ZXJpYSB1bmRlciBlYWNoIEtMT0UuIEFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdpbGwgbm90IGJlIGluc3BlY3RlZCB1bmRlciB0aGUgbmV3IHJldmlzZWQgZnJhbWV3b3JrIHVudGlsIE5vdmVtYmVyIDIwMTcuIENRQyBhcmUgY3VycmVudGx5IGRldmVsb3BpbmcgdGhlaXIgbmV4dCBwaGFzZSBvZiByZWd1bGF0aW9uIHdpdGggY29uc3VsdGF0aW9uIDIgZHVlIHRvIGNsb3NlIGluIEF1Z3VzdCAyMDE3LiBDb25zdWx0YXRpb24gMyBpcyBkdWUgdG8gdGFrZSBwbGFjZSBsYXRlciBpbiB0aGUgeWVhciAoMjAxNy8xOCkuIEFzIENRQyBpbXBsZW1lbnQgdGhlIG5ldyBpbnNwZWN0aW9uIGZyYW1ld29yayB0aGlzIHdpbGwgYmUgYSBjaGFuZ2UgZm9yIHByb3ZpZGVycywgY29uc2VxdWVudGx5IHdlIGFudGljaXBhdGUgdGhlcmUgYmVpbmcgYSBzbGlnaHQgZGVjcmVhc2UgaW4gdGhlIHF1YWxpdHkgcmF0aW5ncyBpbiB0aGUgbGFzdCAyIHF1YXJ0ZXJzIG9mIHRoZSB5ZWFyIChzZXJ2aWNlcyByYXRlZCBHb29kIGFuZCBPdXRzdGFuZGluZykgY29tcGFyZWQgdG8gdGhvc2UgZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocyBzdGFiaWxpc2UuIHRoZSBpbmNyZWFzZXMgc2VlbiBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIFBlcmNlbnRhZ2Ugb2YgQ2FyZSBhdCBIb21lIFByb3ZpZGVycyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDUUMgZHVyaW5nIDIwMTYvMTcgZm9sbG93ZWQgYW4gdXB3YXJkIHRyZW5kIGJleW9uZCB0aGUgdGFyZ2V0LiBUaGlzIGlzIHBhcnRseSBkdWUgdG8gdGhlIHByaW9yaXRpc2F0aW9uIG9mIGluc3BlY3Rpb25zIGZvY3VzaW5nIG9uIHRob3NlIFByb3ZpZGVycyB3aG9tIHdlcmUgcmF0ZWQgbm9uLWNvbXBsaWFudCB1bmRlciB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lIGFuZCBhbHNvLCBwYXJ0bHkgZHVlIHRvIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBvdGhlciBjb21taXNzaW9uZXJzIG9mIHNlcnZpY2VzIGluY3JlYXNpbmcgdGhlIHN1cHBvcnQgYW5kIGNvYWNoaW5nIG9mZmVyZWQgdG8gY2FyZSBtYXJrZXRzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgZW5oYW5jZWQgcXVhbGl0eSBvZiBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BdCB0aGUgc3RhcnQgb2YgMjAxNyB0aGUgQ1FDIGNvbW1lbmNlZCBhIHB1YmxpYyBjb25zdWx0YXRpb24gcHJvY2VzcyB0byBzZWVrIHZpZXdzIG9uIHRoZWlyIHByb3Bvc2FscyB0bztcXG5cXG7igJxyZWd1bGF0ZSBwcmltYXJ5IG1lZGljYWwgc2VydmljZXMgYW5kIGFkdWx0IHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBpbXByb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgcmVnaXN0cmF0aW9uLGFuZCBjbGFyaWZ5IHRoZWlyIGRlZmluaXRpb24gb2YgcmVnaXN0ZXJlZCBwcm92aWRlcnMsIG1vbml0b3IsIGluc3BlY3QgYW5kIHJhdGUgbmV3IG1vZGVscyBvZiBjYXJlIGFuZCBsYXJnZSBvciBjb21wbGV4IHByb3ZpZGVycywgdXNlIHRoZWlyIHVuaXF1ZSBrbm93bGVkZ2UgdG8gZW5jb3VyYWdlIGltcHJvdmVtZW50cyBpbiB0aGUgcXVhbGl0eSBvZiBjYXJlIGluIGxvY2FsIGFyZWFzLCBjYXJyeSBvdXQgdGhlaXIgcm9sZSBpbiByZWxhdGlvbiB0byB0aGUgZml0IGFuZCBwcm9wZXIgcGVyc29ucyByZXF1aXJlbWVudOKAnVxcblxcblRoZSBmaXJzdCBwaGFzZSBvZiB0aGUgY29uc3VsdGF0aW9uIHByb3Bvc2VkIGEgbnVtYmVyIG9mIGNoYW5nZXMgdG8gdGhlIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS0xPRXMgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZSBzdWItY3JpdGVyaWEgdW5kZXIgZWFjaCBLTE9FLiBBZHVsdCBTb2NpYWwgQ2FyZSBTZXJ2aWNlcyB3aWxsIG5vdCBiZSBpbnNwZWN0ZWQgdW5kZXIgdGhlIG5ldyByZXZpc2VkIGZyYW1ld29yayB1bnRpbCBOb3ZlbWJlciAyMDE3LiBUaGUgQ1FDIGFyZSBjdXJyZW50bHkgZGV2ZWxvcGluZyB0aGVpciBuZXh0IHBoYXNlIG9mIHJlZ3VsYXRpb24gd2l0aCBjb25zdWx0YXRpb24gMiBkdWUgdG8gY2xvc2UgaW4gQXVndXN0IDIwMTcuIENvbnN1bHRhdGlvbiAzIGlzIGR1ZSB0byB0YWtlIHBsYWNlIGxhdGVyIGluIHRoZSB5ZWFyICgyMDE3LzE4KS4gQXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIE1hcmNoIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuTGF0ZXN0IGZpZ3VyZSBjb250aW51ZXMgb24gYW4gdXB3YXJkIHRyZW5kIHNob3dpbmcgcXVhbGl0eSBpbiBjYXJlIGhvbWVzIGlzIGluY3JlYXNpbmcuIFRoaXMgaW5jcmVhc2UgbWF5IGJlIGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgYnkgdGhlIENRQywgYXMgdGhleSBpbXBsZW1lbnRlZCB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lLCBpLmUuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgZm9jdXNlZCBpbml0aWFsbHkgb24gdGhvc2UgcHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBwcmV2aW91cyBpbnNwZWN0aW9uIHJlZ2ltZS4gQWRkaXRpb25hbGx5LCBkdXJpbmcgdGhlIHBhc3QgeWVhciBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBhbmQgb3RoZXIgY29tbWlzc2lvbmVycyBvZiBzZXJ2aWNlcyBoYXZlIGluY3JlYXNlZCBzdXBwb3J0IG9mZmVyZWQgdG8gdGhlIGNhcmUgbWFya2V0cyBhbmQgb2ZmZXJlZCBhZHZpY2UgYW5kIGd1aWRhbmNlIHRvIGNhcmUgcHJvdmlkZXJzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgaGlnaCBxdWFsaXR5IGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LiBBcyB3ZSBtb3ZlIGludG8gdGhlIG5leHQgeWVhciwgYW5kIHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbiBjb21wbGV0ZSB0aGVpciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaW5zcGVjdGlvbiByZWdpbWUgbW92aW5nIHRvIGZvY3VzZWQgaW5zcGVjdGlvbnMsIHdlIGV4cGVjdCB0byBzZWUgdGhlIGluY3JlYXNlcyBzZWVuIGR1cmluZyB0aGUgbGFzdCAxMi1tb250aHMgc3RhYmlsaXNlLlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiVG8gaW5jcmVhc2UgdGhlIG51bWJlciBvZiBob21lIGNhcmUgcHJvdmlkZXJzIHJhdGVkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgYnkgdGhlIENRQyB0byBiZSA2MCUgb3IgaGlnaGVyXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6ZmFsc2UsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRvIG1haW50YWluIG9yIGltcHJvdmUgdGhlIHBlcmNlbnRhZ2Ugb2YgaG9tZSBjYXJlIHByb3ZpZGVycyByYXRlZCBhcyBnb29kIG9yIG91dHN0YW5kaW5nIGJ5IHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbiB0byA2MCUgb3IgYWJvdmVcIixcImljb25cIjpcImhvbWVcIixcInRpdGxlX2ltYWdlXCI6XCIvYXBpL2Fzc2V0cy9BRDcwRUU0MS03Mzg4LTQ1Q0MtQjEwNC04Njk3OUQyMDgwNzdcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNS0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0X3R5cGUiOiJyZWxhdGl2ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6NjAsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoia2R1bS04czV0In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwibWFpbnRhaW5cIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX19LFwic3RhcnRcIjpcIjIwMTUtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTUtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJ0aGUgcmF0aW8gb2YgaG9tZSBjYXJlIHByb3ZpZGVycyByYXRlZCBhcyBnb29kIG9yIG91dHN0YW5kaW5nIGJ5IHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvblwifSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0wM1QxMDo0MDoxOC4xNjZaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjY6NDMuNTg1WiIsInZlcnNpb24iOiIyMDE4LTA0LTAzVDEwOjQwOjE4LjE2NloiLCJ0YXJnZXRfdG9sZXJhbmNlIjo5LCJpZCI6ImtteWQtbmt1MyJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMlQwOTo0NTozNS40MzFaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjY6NDMuNjY2WiIsInZlcnNpb24iOiIyMDE4LTA0LTEyVDA5OjQ1OjM1LjQzMVoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6ImFlOTgtcHRnYSIsIm5hbWUiOiJSZXNpZGVudGlhbCBDYXJlIEFkbWlzc2lvbnMiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIGdvYWwgbWVhc3VyZXMgdGhlIHJhdGUgYXQgd2hpY2ggcGVvcGxlIG92ZXIgdGhlIGFnZSBvZiA2NSBhcmUgcGVybWFuZW50bHkgYWRtaXR0ZWQgaW50byByZXNpZGVudGlhbCBvciBudXJzaW5nIGFjY29tbW9kYXRpb24sIGFzIHBhcnQgb2YgdGhlIHN1cHBvcnQgcHJvdmlkZWQgYnkgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwuIFdlIGFpbSB0byBtaW5pbWlzZSB0aGlzLCBhcyBwYXJ0IG9mIG91ciBkZXRlcm1pbmF0aW9uIHRvIHByb21vdGUgaW5kZXBlbmRlbmNlIGFuZCB0byBzdXBwb3J0IHBlb3BsZSB0byBsaXZlIGluIHRoZWlyIG93biBob21lcy4gVGhlIG5lZWRzIG9mIG91ciBjdXN0b21lcnMgd2lsbCwgaG93ZXZlciwgYWx3YXlzIHJlbWFpbiB0aGUgcHJpbWFyeSBmb2N1cy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkFzIGNhbiBiZSBzZWVuIGZyb20gZmlndXJlcyBiZWxvdyB3ZSBoYXZlIG5vdCBiZWVuIHN1Y2Nlc3NmdWwgaW4gaGl0dGluZyBvdXIgcmVzaWRlbnRpYWwgYWRtaXNzaW9ucyB0YXJnZXQgZm9yIHRoZSBsYXN0IDQgeWVhcnMsIGhvd2V2ZXIgb3ZlciB0aGUgbGFzdCAyIHllYXJzIHdlIGhhdmUgaW1wcm92ZWQgZnJvbSA2NjAgYWRtaXNzaW9ucyBwZXIgMTAwayBwb3B1bGF0aW9uICgxNS8xNikgdG8gNjIyIGFkbWlzc2lvbnMgcGVyIDEwMGsgcG9wdWxhdGlvbigxNi8xNykuXFxuXFxuQXMgd2UgbW92ZSBhbG9uZyB0aGUgcHJldmVudGF0aXZlIHNlcnZpY2VzIHJvdXRlLCBzdGFydCB0aGUgbmV3IG9wZXJhdGluZyBtb2RlbCBhbmQgdXNlIEQyQSBhbmQgb3RoZXIgc2VydmljZXMgdG8gcHJldmVudCBhZG1pc3Npb25zIGRpcmVjdCBmcm9tIGFjdXRlcyB0aGVuIGl0IGlzIGxpa2VseSB0aGF0IHRoaXMgaW1wcm92ZWQgcGVyZm9ybWFuY2UgdHJlbmQgd2lsbCBjb250aW51ZS5cXG5cXG5Gb3IgdGhlIGxhc3QgMiB5ZWFycyBvdXIgdGFyZ2V0IGhhcyBiZWVuIDU5NSBhZG1pc3Npb25zIHBlciAxMDBrIHBvcHVsYXRpb24uIFRoaXMgaXMgaGlnaGVyIHRoYW4gdGhlIEFTQ09GIFNFIGF2ZXJhZ2UgaW4gMjAxNS8xNiBidXQgbG93ZXIgdGhhbiB0aGUgbmF0aW9uYWwgYXZlcmFnZS4gQmVhcmluZyBpbiBtaW5kIG91ciBpbXByb3ZpbmcgcGVyZm9ybWFuY2UgdHJhamVjdG9yeSBhbmQgdGhlIGFkZGl0aW9uYWwgYWN0aW9ucyBhcyBkZXNjcmliZWQgYWJvdmUgaXQgaXMgc3VnZ2VzdGVkIHRoYXQgd2UgcmV0YWluIHRoaXMgdGFyZ2V0IGZvciBhdCBsZWFzdCAyMDE3LzE4LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy80RUY3OTg0RC03OERBLTRFRkMtQTQ3OS00MDY1REE3MEJDQUNcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMjE4QTNDMUMtMTM2MC00MEQyLUEyMjYtREI5MzE1MzUyMDUxXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkZyb250bGluZSB0ZWFtcyBjb250aW51ZSB0byBtYW5hZ2UgdGhlIGRlbWFuZCBmb3IgbG9uZyB0ZXJtIHBsYWNlbWVudHMgd2l0aCBhbiBpbmNyZWFzaW5nIGZvY3VzIG9uIHN1cHBvcnRpbmcgaW5kaXZpZHVhbHMgdG8gcmVtYWluIGluZGVwZW5kZW50IHRocm91Z2ggcmVhYmxlbWVudCwgYW5kIGFjY2VzcyB0byBjb21tdW5pdHkgc2VydmljZXMuXFxuXFxuIFwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiVG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcGVybWFuZW50IGFkbWlzc2lvbnMgb2Ygb2xkZXIgcGVvcGxlIChhZ2VkIDY1IGFuZCBvdmVyKSB0byByZXNpZGVudGlhbCBhbmQgbnVyc2luZyBjYXJlIGhvbWVzXCIsXCJpY29uXCI6XCJ0ZXh0XCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVG8gcmVkdWNlIHRoZSBwZXJjZW50YWdlIG9mIGFwcHJvcHJpYXRlIGFkbWlzc2lvbnMgdG8gcmVzaWRlbnRpYWwgY2FyZSBpbiBwZW9wbGUgYWdlZCA2NSsgcGVyIDEwMCwwMDAgdG8gNTk1LjQuXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTctMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoicGVvcGxlIGFnZWQgNjUrIHBlciAxMDAsMDAwIiwidGFyZ2V0Ijo1OTUuNCwidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6NjExLjQsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoianNlei01OWN6In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6IjwifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTd9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwicmVkdWNlXCIsXCJtYWludGFpbl90eXBlXCI6XCJ3aXRoaW5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX19LFwic3RhcnRcIjpcIjIwMTUtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTUtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJBcHByb3ByaWF0ZSBBZG1pc3Npb25zIHRvIFJlc2lkZW50aWFsIENhcmVcIixcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOmZhbHNlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcIndpdGhpbl90b2xlcmFuY2VcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMThUMTQ6MDY6MjMuNjg3WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjIzOjM2LjI5MFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xOFQxNDowNjoyMy42ODdaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MTQuNiwiaWQiOiJ5c3U2LTNjcjgifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMThUMTQ6MDY6NDUuNjM0WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjIzOjM2LjM3NFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xOFQxNDowNjo0NS42MzRaIiwiY3JlYXRlZF9ieSI6IjNkcHYtanI4bSJ9LHsiaWQiOiJjNHRmLXo3M20iLCJuYW1lIjoiRGVtZW50aWEgZGlhZ25vc2lzIHJhdGUiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcInRleHRcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaW1lbHkgZGlhZ25vc2lzIG9mIGRlbWVudGlhIGlzIGEga2V5IHByaW9yaXR5IGZvciBib3RoIGhlYWx0aCBhbmQgc29jaWFsIGNhcmUuXFxuXFxuVGhlc2UgcmF0ZXMgY292ZXIgdGhlIE1lbW9yeSBBc3Nlc3NtZW50IFNlcnZpY2UgKE1BUykgb25seS4gVGhyb3VnaCB0aGUgTUFTIHBlb3BsZSB3aXRoIGRlbWVudGlhIGFuZCB0aGVpciBjYXJlcnMgYXJlIGFibGUgdG8gYWNjZXNzIHN1cHBvcnQgZnJvbSBkZW1lbnRpYSBhZHZpc2VycyBhbmQgYXNzb2NpYXRlZCBwcm9mZXNzaW9uYWxzLCB3aG8gY2FuIGFsc28gbGluayB0aGVtIGludG8gc29jaWFsIGdyb3VwcywgY2FyZXJzIHN1cHBvcnQgZ3JvdXBzIGFuZCBvcHBvcnR1bml0aWVzIHRvIGxlYXJuIGFib3V0IGhvdyB0byBsaXZlIHdlbGwgd2l0aCBkZW1lbnRpYS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbiogQ3Jhd2xleSBoYXMgcmVjb3ZlcmVkIGFuZCBpcyBub3cgb24gdGFyZ2V0LlxcbiogSG9yc2hhbSBhbmQgTWlkIFN1c3NleCByZW1haW5zIGFib3ZlIHRhcmdldC5cXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9FRjEyNTZBNi1GNjM5LTQwMzUtODNBQS02QkI1QTkzMUI5RTlcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRDgyMjk5RjAtRTVCMC00NjM1LTlENzQtRUMzNDkxRDczRjYyXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOUYwMTNEMEEtNTZFMC00NzM0LThFREMtNDlFNzE2MkNCNTgwXCJ9LHtcInR5cGVcIjpcImltYWdlXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblExIHJlc3VsdHMgc2hvdyB0aGF0IG92ZXJhbGwgZGlhZ25vc2lzIHJhdGUgaXMgc3RlYWRpbHkgaW1wcm92aW5nIGFuZCBvbiB0cmFjayB0byBtZWV0IGl0cyB5ZWFyLWVuZCB0YXJnZXQgb2YgNjguMSUuIEhvcnNoYW0gQ0NHIGhhcyBhbHJlYWR5IG1ldCB0aGUgeWVhci1lbmQgdGFyZ2V0ICg2OC40NSUpIGFuZCBjbGluaWNhbCBkaXJlY3RvcnMgYXJlIGRldmVsb3BpbmcgYW4gYWN0aW9uIHBsYW4gYmFzZWQgb24gdGhlaXIgbGVhcm5pbmcgZnJvbSBIb3JzaGFt4oCZcyBwcm9ncmVzcywgdG8gaW1wcm92ZSB0aGUgZGlhZ25vc2VzIHJhdGVzIG9mIENyYXdsZXkgYW5kIE1pZCBTdXNzZXggQ0NHcy4gVGhlIGFjdGlvbiBwbGFuIGFsc28gaW5jbHVkZXMgYWN0aW9ucyB0byBlbnN1cmUgaW1wcm92ZWQgcG9zdCBkaWFnbm9zdGljIHN1cHBvcnQgaW4gcHJpbWFyeSBjYXJlLCBzdXBwb3J0ZWQgYnkgb3RoZXIgcHJvdmlkZXJzLiAoM3JkIHNlY3RvciBhbmQgU1BGVCkuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgbWVhc3VyZXMgdGhlIGRpYWdub3NpcyByYXRlIG9mIGRlbWVudGlhIGluIFdlc3QgU3Vzc2V4IFwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDEzLTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXQiOjY3LCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6ImJ2ODctdnBqNiJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDEzfSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9fSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fX0sXCJzdGFydFwiOlwiMjAxNC0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNC0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSBkaWFnbm9zaXMgcmF0ZSBmb3IgZGVtZW50aWFcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMDk6NDc6MDcuOTY0WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjI5OjAyLjEwNloiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQwOTo0NzowNy45NjRaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MTAsImlkIjoiaWJpcC00cDJnIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDA5OjQ3OjA4LjA5MVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToyOTowMi4xNjVaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMDk6NDc6MDguMDkxWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiOTl4dC1pdDRnIiwibmFtZSI6IkhlYWx0aHkgTGlmZSBFeHBlY3RhbmN5IiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJoZWFydFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqSGVhbHRoeSBMaWZlIEV4cGVjdGFuY3kqKlxcblxcbkFzIGxpZmUgZXhwZWN0YW5jeSBoYXMgcmlzZW4sIGl0IGlzIGltcG9ydGFudCB0byBtZWFzdXJlIHdoYXQgcHJvcG9ydGlvbiBvZiB0aGVzZSBhZGRpdGlvbmFsIHllYXJzIG9mIGxpZmUgaXMgYmVpbmcgc3BlbnQgaW4gZ29vZCBoZWFsdGguIEhlYWx0aHkgTGlmZSBFeHBlY3RhbmN5IGVzdGltYXRlcyB0aGlzIGFuZCB0aGUgbWVhc3VyZSB1bmRlcmxpbmVzIHRoZSBpbXBvcnRhbmNlIG9mIHdlbGxiZWluZyBhbmQgbGlmZXN0eWxlIHNlcnZpY2VzLiBUaGVzZSBzZXJ2aWNlcywgY29tbWlzc2lvbmVkIGZvciB0aGUgV2VzdCBTdXNzZXggcG9wdWxhdGlvbiwgaW5jbHVkZTogaGVhbHRoIGNoZWNrcyBmb3IgdGhlIGdlbmVyYWwgcG9wdWxhdGlvbiBvZiBhZHVsdHMgYWdlZCA0MCB0byA3NCwgYW5kIGFkdWx0cyB3aXRoIGxlYXJuaW5nIGRpc2FiaWxpdHk7IHNlcnZpY2VzIHRvIG1haW50YWluIHRoZSBoZWFsdGggb2YgY2FyZXJzOyBhbGNvaG9sIHByZXZlbnRpb24gYW5kIGVhcmx5IGlkZW50aWZpY2F0aW9uIG9mIHJpc2s7IHNtb2tpbmcgY2Vzc2F0aW9uIHNlcnZpY2VzIGZvciBwcmVnbmFudCB3b21lbiBhbmQgb3RoZXIgYWR1bHRzOyBoZWFsdGh5IHdlaWdodCBzZXJ2aWNlczsgaGFybSByZWR1Y3Rpb24gYXBwcm9hY2hlcyBmb3Igc3Vic3RhbmNlIG1pc3VzZSwgYW5kIGVtb3Rpb25hbCB3ZWxsYmVpbmcgcHJvZ3JhbW1lcy4gVGhlc2Ugc2VydmljZXMgaGF2ZSB0aGVpciBvd24gS1BJcyBhbmQgYWN0aW9uIHBsYW5zLCBhbmQgbWFueSBhcmUga2V5IHRvIHJlZHVjaW5nIHRoZSByaXNrcyBvZiBkZXZlbG9waW5nIGNhcmRpb3Zhc2N1bGFyIGRpc2Vhc2UgYW5kIGRpYWJldGVzLlxcblxcbkhlYWx0aHkgbGlmZSBleHBlY3RhbmN5IGlzIGluZmx1ZW5jZWQgYnkgYSB2YXN0IHJhbmdlLCBhbmQgY29tcGxleCBpbnRlcmFjdGlvbiwgb2YgZmFjdG9ycyBydW5uaW5nIHRocm91Z2ggZWFjaCBpbmRpdmlkdWFsJ3MgbGlmZS4gVGhlc2UgaW5jbHVkZTogbWF0ZXJuYWwgaGVhbHRoIGFuZCB3ZWxsYmVpbmcsIHBhcmVudGFsIHJlbGF0aW9uc2hpcHMgYW5kIGluZmx1ZW5jZXMgaW4gdGhlIGVhcmx5IHllYXJzIG9mIGxpZmUsIGluY2x1ZGluZyBicmVhc3RmZWVkaW5nLCBkaWV0IGFuZCBwaHlzaWNhbCBhY3Rpdml0eTsgYWNjZXNzIHRvIGhlYWx0aCBhbmQgb3RoZXIgc2VydmljZXMsIGFuZCB3aWRlciBpbmZsdWVuY2VzIHN1Y2ggYXMgaW5jb21lLCBlZHVjYXRpb24sIHNraWxscyBhbmQgZW1wbG95bWVudC4gVGhlcmVmb3JlIHRoaXMgbWVhc3VyZSBpcyBsaW5rZWQgdG8gb3RoZXIgbWVhc3VyZXMgaW4gdGhlIEZ1dHVyZSBXZXN0IFN1c3NleCBQbGFuLlxcblxcblRoZSBkYXRhIGZvciB0aGlzIG1lYXN1cmUgaXMgc291cmNlZCBmcm9tIHRoZSBPTlMgc3RhdGlzdGljYWwgcmVsZWFzZSBvbiBIZWFsdGh5IExpZmUgRXhwZWN0YW5jeSBhdCBCaXJ0aCBieSBVcHBlciBUaWVyIEF1dGhvcmlpdGVzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIFllYXIgZW5kIDIwMTcqKiAqKlVwZGF0ZSoqXFxuXFxuQXMgYW50aWNpcGF0ZWQgV2VzdCBTdXNzZXggZmlndXJlcyBhcmUgYmV0dGVyIHRoYW4gdGhlIEVuZ2xhbmQgYXZlcmFnZSBhbmQgdGhpcyBpcyBleHBlY3RlZCBkdWUgdG8gdGhlIGNvdW50eeKAmXMgdG90YWwgYWJvdmUgYXZlcmFnZSBsZXZlbCBvZiBhZmZsdWVuY2UuIFdlIHNldCB0aGUgdGFyZ2V0IHRvIGltcHJvdmUgYW5kIGFjaGlldmUgYSBiZW5jaCBtYXJrIG9mIEFtYmVyIG9yIEdyZWVuIHdoZW4gV2VzdCBTdXNzZXggaXMgY29tcGFyZWQgdG8gdGhlIGF2ZXJhZ2Ugc2NvcmUgZm9yIHRoZSBTb3V0aCBFYXN0IG9mIEVuZ2xhbmQuIFRoZSBhZGRpdGlvbiBvZiBuZXcgZGF0YSBwb2ludHMgdG8gdGhlIFB1YmxpYyBIZWFsdGggT3V0Y29tZXMgRnJhbWV3b3JrIHNob3cgdGhlcmUgaXMgbm8gZGlzY2VybmlibGUgdHJlbmQgaW4gaGVhbHRoeSBsaWZlIGV4cGVjdGFuY3kgZm9yIHRoZSBTb3V0aCBFYXN0IG9mIEVuZ2xhbmQsIHdpdGggdGhlIHZhbHVlIHJpc2luZyBiZXR3ZWVuIDIwMTMvIDE0IGFuZCAyMDE0LzE1LCBhbmQgdGhlbiBmYWxsaW5nIGFnYWluIGluIDIwMTUvMTYuIFRoZSBIZWFsdGggRm91bmRhdGlvbiwgaW4gaXRzIDIwMTcgcHVibGljYXRpb24gSGVhbHRoeSBMaXZlcyBmb3IgUGVvcGxlIGluIHRoZSBVSyB1c2VzIGFuIGFkYXB0ZWQgdmVyc2lvbiBvZiBEYWhsZ3JlbiBhbmQgV2hpdGVoZWFk4oCZcyAoMTk5MSkgbW9kZWwgdG8gaWxsdXN0cmF0ZSB0aGUgcmFuZ2Ugb2YgaW5mbHVlbmNlcnMgb24gb3VyIHdlbGxiZWluZyBhbmQgaGVhbHRoLiBGaWd1cmUgMSAocmlnaHQpIC5UaGUgZmFjdG9ycyB0aGF0IGluZmx1ZW5jZSBhbiBpbmRpdmlkdWFs4oCZcyBoZWFsdGggYW5kIHdlbGxiZWluZy4gQWRhcHRlZCBmcm9tIERhaGxncmVuIEcsV2hpdGVoZWFkIE0uIFBvbGljaWVzIGFuZCBTdHJhdGVnaWVzIHRvIFByb21vdGUgU29jaWFsIEVxdWl0eSBpbiBIZWFsdGguU3dlZGVuOiBJbnN0aXR1dGUgZm9yIEZ1dHVyZXMgU3R1ZGllczsgMTk5MS4gSGVhbHRoeSBsaWZlIGV4cGVjdGFuY3kgaXMgYSBjb25zZXF1ZW5jZSBvZiBtdWx0aXBsZSwgY29tcGxleCBpbnRlcmFjdGluZyBmYWN0b3JzLCBvbmx5IHNvbWUgb2Ygd2hpY2ggYXJlIHdpdGhpbiB0aGUgZGlyZWN0IGNvbnRyb2wgb2YgdGhlIENvdW50eSBDb3VuY2lsLiBNYW55IG9mIHRoZSBmYWN0b3JzIGNvbnRyaWJ1dGluZyB0byB0aGlzIG91dGNvbWUgaGF2ZSBiZWVuIGFjdGluZyBvdmVyIGxvbmcgdGVybSB0cmVuZHMgKGZvciBkZWNhZGVzIG9yIGdlbmVyYXRpb25zKS4gVGhlcmUgYXJlIGluY3JlYXNpbmdseSBzdWdnZXN0aW9ucyB0aGF0IGEgY29tcGxleCBzeXN0ZW0gd2lkZSBtZXRob2QgY29uc2lkZXJpbmcgc29jaWFsIGRldGVybWluYW50cyBhbmQgcG90ZW50aWFsbHkgYSDigJxoZWFsdGggaW4gYWxsIHBvbGljaWVzIOKAnCBhcHByb2FjaCwgc2hvdWxkIGJlIGNvbnNpZGVyZWQgaW4gdGhlIGZ1dHVyZSB0byBkZXRlcm1pbmUgd2hlcmUgbG9jYWwgcmVzb3VyY2VzIGFyZSBmb2N1c2VkLlxcblxcblRoZSBncmVhdGVzdCBpbmZsdWVuY2VzIG9uIG91ciB3ZWxsYmVpbmcgYW5kIGhlYWx0aCBhcmUgZmFjdG9ycyBzdWNoIGFzIGVkdWNhdGlvbiBhbmQgZW1wbG95bWVudCwgaG91c2luZyBhbmQgdGhlIGV4dGVudCB0byB3aGljaCB0aGUgY29tbXVuaXR5IGZhY2lsaXRhdGVzIGhlYWx0aHkgaGFiaXRzIGFuZCBzb2NpYWwgY29ubmVjdGlvbi4gV2hpbGUgaGVhbHRoIGJlaGF2aW91cnMgaGF2ZSBhIGJpZyBkaXJlY3QgaW1wYWN0IG9uIGhlYWx0aDsgc29jaW8tIGVjb25vbWljIGFuZCBvdGhlciBmYWN0b3JzIGhhdmUgYSBiaWcgaW1wYWN0IG9uIGhlYWx0aCBiZWhhdmlvdXJzLiAoTEdBLCBTZXB0ZW1iZXIgMjAxNi0gSGVhbHRoIGluIEFsbCBQb2xpY2llcykuIEZvciBleGFtcGxlIG9iZXNpdHkgaXMgYXNzb2NpYXRlZCB3aXRoIGxvd2VyIGVkdWNhdGlvbmFsIGF0dGFpbm1lbnQsIHdoaWNoIGluIHR1cm4gaXMgbGlua2VkIHRvIGluZXF1YWxpdHkgYW5kIGRlcHJpdmF0aW9uLiBNb3N0IG9mIHRoZSBkZXRlcm1pbmFudHMgb2YgaGVhbHRoIGhhdmUgbm90aGluZyB0byBkbyB3aXRoIGhlYWx0aCBzZXJ2aWNlcyBhbmQgaGF2ZSBldmVyeXRoaW5nIHRvIGRvIHdpdGggYnJvYWRlciBwdWJsaWMgc2VydmljZXMsIHRoZSBlbnZpcm9ubWVudHMgaW4gd2hpY2ggd2UgbGl2ZSwgYW5kIHBlb3BsZeKAmXMgb3Bwb3J0dW5pdGllcyB0byBsZWFkIGhlYWx0aHkgbGl2ZXMuIChFaXNlbnN0YWR0IE4sIHNwZWFraW5nIGluOiBUaGUgSGVhbHRoIEZvdW5kYXRpb24uIEhlYWx0aGllciBsaXZlczogYSBsaXN0ZW5pbmcgZXhlcmNpc2UuIFtWaWRlb10gMjAxNi4gQXZhaWxhYmxlIGZyb206IFtodHRwOi8vd3d3LmhlYWx0aC5vcmcudWsvaGVhbHRoaWVyLWxpdmVzLWxpc3RlbmluZy1leGVyY2lzZV1bMF0gQWNjZXNzIHRvIGhlYWx0aCBjYXJlIGFjY291bnRzIGZvciBhcyBsaXR0bGUgYXMgMTAlIG9mIGEgcG9wdWxhdGlvbuKAmXMgaGVhbHRoIGFuZCB3ZWxsYmVpbmcuIFdoaWxzdCB0aGUgcXVhbGl0eSBvZiB0aGUgaGVhbHRoY2FyZSBzeXN0ZW0gcmVtYWlucyBpbXBvcnRhbnQsIGJ5IGl0c2VsZiwgYSBzYWZlIGFuZCBlZmZlY3RpdmUgaGVhbHRoIHNlcnZpY2UsIHdpbGwgbm90IGltcHJvdmUgdGhlIGhlYWx0aCBvZiBwZW9wbGUgaW4gdGhlIFVLLiBJZiB0aGUgY2F1c2VzIG9mIGlsbCBoZWFsdGggYXJlIHNvY2lhbCwgZWNvbm9taWMgYW5kIGVudmlyb25tZW50YWwgdGhlbiB0aGUgc29sdXRpb25zIG5lZWQgdG8gYmUgdG9vLiBUaGVyZSBpcyBub3QgYSBzaW5nbGUgc2VjdG9yIHRoYXQgd2lsbCBoYXZlIHRoZXJlIHNvdXJjZSB0byBhZGRyZXNzIHRoZSBjb21wbGV4aXR5LlxcblxcblRoZSBIZWFsdGggaW4gYWxsIFBvbGljaWVzIGFwcHJvYWNoIHJlY29nbmlzZXMgdGhhdCBvdXIgZ3JlYXRlc3QgaGVhbHRoIGNoYWxsZW5nZXMsIHRob3NlIHRoYXQgaW1wYWN0IG9uIGxpZmUgZXhwZWN0YW5jeSwgYXJlIGhpZ2hseSBjb21wbGV4IGFuZCB0aGF0IGEgY29sbGFib3JhdGl2ZSBhcHByb2FjaCB0byBkZWNpc2lvbi1tYWtpbmcgYWNyb3NzIGFsbCBzZWN0b3JzIGFuZCBwb2xpY3kgYXJlYXMgYXJlIG5lZWRlZC4g4oCcVGhlIGNhdXNlcyBvZiB0aGUgY2F1c2Vz4oCdIGlzIGhvdyB0aGUgc29jaWFsIGRldGVybWluYW50cyBvZiBoZWFsdGggYXJlIHJlZmVycmVkIHRvLGFuZCB0aGVzZSBzaG91bGQgYmUgdGhlIG1haW4gZm9jdXMgb2YgYW55IHN0cmF0ZWd5IHRvIGltcHJvdmUgbGlmZSBleHBlY3RhbmN5LGhlYWx0aCBhbmQgaGVhbHRoIGluZXF1YWxpdGllcy4gKE1hcm1vdCwgY2l0ZWQgaW4gTEdBIDIwMTYpIFdlc3QgU3Vzc2V4IGhhcyBpbmNyZWFzaW5nIHJlY29nbmlzZWQgdGhlIGltcG9ydGFuY2Ugb2YgYWRkcmVzc2luZ+KAnHRoZSBjYXVzZXMgb2YgdGhlIGNhdXNlc+KAnSB3aXRoIHNvbWUgb2YgaXRzIHNlcnZpY2VzIGFuZCB0aGUgY2FzZSBzdHVkeSBiZWxvdyBmcm9tIHRoZSBQcmVzY3JpcHRpb24gUGx1cyBwcm9qZWN0IGluIENyYXdsZXkgaXMgYW4gZXhhbXBsZSBvZiB0aGlzLiBNcnMgWCBpcyA3Ni4gSGVyIGh1c2JhbmQgcGFzc2VkIGF3YXkgOSB5ZWFycyBhZ28gYW5kIHNoZSBoYXMgYWxzbyDigJhsb3N04oCZIGZvdXIgb2YgaGVyIGZyaWVuZHMgb3ZlciB0aGUgbGFzdCAxMiBtb250aHMuIFNoZSBzZWVzIGhlciBkYXVnaHRlciBvbmNlIGEgd2Vlay4gTXJzIFggc3RpbGwgZHJpdmVzIGFuZCB0cmllcyB0byBnZXQgb3V0IHR3aWNlIGEgd2VlayBhcyBzaGUgZW5qb3lzIGdvb2QgY29tcGFueSBhbmQgY2hhdHRpbmcuIFNoZSBpcyBob3dldmVyIHZlcnkgbG9uZWx5LiBNcnMgWCBhbmQgaGVyIGh1c2JhbmQgdmlzaXRlZCBTb3V0aCBBZnJpY2EgZm9yIG92ZXIgMjAgeWVhcnMgYW5kIGhhcyB2ZXJ5IGZvbmQgbWVtb3JpZXMgb2YgdHJhdmVsbGluZyBhbmQgc3BlbmRpbmcgdGltZSB3aXRoIGhlciBodXNiYW5kIGFuZCBmcmllbmRzLiBTaW5jZSBoZXIgZnJpZW5kcyBoYXZlIHBhc3NlZCBhd2F5LCBNcnMgWCBoYXMgYmVjb21lIG1vcmUgYW54aW91cyBhYm91dCBnb2luZyBvdXQgYW5kIG1lZXRpbmcgbmV3IHBlb3BsZS4gU2hlIGFncmVlZCB0byB0cnkgb3V0IEFnZSBVSyBvbiBhIFR1ZXNkYXkuIE1ycyBaIGlzIDgzIGFuZCBoYXMgYSBmZXcgbWVkaWNhbCBjb25kaXRpb25zLiBTaGUgdXNlZCB0byB2b2x1bnRlZXIgd2l0aCBNZWFscyBPbiBXaGVlbHMgYW5kIGFzIGFuIGVzY29ydCBvbiBhIHNjaG9vbCBidXMgYXNzaXN0aW5nIGRpc2FibGVkIGNoaWxkcmVuLiBNcnMgWiBoYXMgYmVjb21lIGV2ZXJ5IGFueGlvdXMgYWJvdXQgbGVhdmluZyBoZXIgaG91c2UgYW5kIGhhcyBjb21tZW50ZWQgdGhhdCDigJhpdCBoYXBwZW5lZCBqdXN0IGxpa2UgdGhhdOKAmSDigKYgdGhlcmUgd2FzIG5vIHRyaWdnZXIuIFNoZSBuZXZlciBqb2luZWQgYW55IGNsdWJzIGluIHRoZSBwYXN0IGFuZCBoZXIgYW54aWV0eSBoYXMgZ290dGVuIHNvIGJhZCwgdGhhdCBzaGUgZXZlbiBmZWVscyB1bmNvbWZvcnRhYmxlIGdvaW5nIHVwIHRvIHRoZSBsb2NhbCBzaG9wIGFuZCB0byBoZXIgc29u4oCZcyBob3VzZSBmb3IgZGlubmVyLiBNcnMgWuKAmXMgZGF1Z2h0ZXItaW4tbGF3IGNvbmZpcm1lZCB0aGlzIHdpdGggdGhlIENvb3JkaW5hdG9yIGFuZCBhY3R1YWxseSB3aXNoZWQgaGVyIGx1Y2sgaW4gZ2V0dGluZyBNcnMgWiB0byBwYXJ0aWNpcGF0ZS4gVGhlIENvb3JkaW5hdG9yIGFycmFuZ2VkIHRvIGNvbGxlY3QgTXJzIFggYW5kIE1ycyBaIHRvIGF0dGVuZCB0aGUgVHVlc2RheSBzZXNzaW9uIGF0IEFnZSBVSy4gQm90aCB3ZXJlIG5lcnZvdXMgYW5kIGhhZCB0byBsaW5rIGFybXMgdG8gZW50ZXIgdGhlIG1haW4gaGFsbC4gVGhleSB3ZXJlIG1hZGUgdG8gZmVlbCB2ZXJ5IHdlbGNvbWUgYW5kIGhhdmUgZGVjaWRlZCB0byBnbyBiYWNrLiBUaGUgQ29vcmRpbmF0b3Igd2FzIGdpdmVuIHBlcm1pc3Npb24gdG8gc2hhcmUgdGhlIGNvbnRhY3QgZGV0YWlscyBvZiBib3RoIGFuZCBub3cgTXJzIFggd2lsbCBiZSBjb2xsZWN0aW5nIE1ycyBaIHRvIGdvIGFsb25nIHRvIHRoZSBUdWVzZGF5IHNlc3Npb24uXFxuXFxuWzBdOiBodHRwOi8vd3d3LmhlYWx0aC5vcmcudWsvaGVhbHRoaWVyLWxpdmVzLWxpc3RlbmluZy1leGVyY2lzZVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIgICoqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNioqXFxuXFxuIFxcblxcbkhlYWx0aC1yZWxhdGVkIHF1YWxpdHkgb2YgbGlmZSDigJNIZWFsdGh5IExpZmUgRXhwZWN0YW5jeSAvIFF1YWxpdHkgb2YgTGlmZSBvZiBPbGRlciBQZW9wbGUgVGhpcyBnb2FsIGlzIG1lYXN1cmVkIGJ5IG1vbml0b3JpbmcgYW5udWFsIHVwZGF0ZXMgdG8gdGhlIEdQIHBhdGllbnQgc3VydmV5IGl0ZW0gYWJvdXQgdGhlIGhlYWx0aCBvZiBwZW9wbGUgYWdlZCA2NSBhbmQgb3Zlci4gKFBsZWFzZSBub3RlIHRoYXQgdGhlIGZpZ3VyZXMgZm9yIFdlc3QgU3Vzc2V4IGF0IGFueSBvbmUgdGltZSBtYXkgaW5jbHVkZSBhIHNtYWxsIHBlcmNlbnRhZ2Ugb2YgcGVvcGxlIGxpdmluZyBpbiBvdGhlciBjb3VudGllcyB0aGF0IGJvcmRlciBXZXN0IFN1c3NleCkuIFRoZSBIZWFsdGggUmVsYXRlZCBRdWFsaXR5IG9mIExpZmUgKEhSUUwpIEdQIFBhdGllbnTigJlzIFN1cnZleSBxdWVzdGlvbiBhc2tzIHBlb3BsZSB0byBkZXNjcmliZSB0aGVpciBoZWFsdGggc3RhdHVzIGFnYWluc3QgZml2ZSBhcmVhczogTW9iaWxpdHksIFNlbGYtY2FyZSwgQWJpbGl0eSB0byBkbyB1c3VhbCBhY3Rpdml0aWVzLCBQYWluIC9kaXNjb21mb3J0LCBBbnhpZXR5IC8gZGVwcmVzc2lvbi4gVGhpcyBpbmRpY2F0b3IgaGFzIGJlZW4gdXBkYXRlZCBvbiB0aGUgUHVibGljIEhlYWx0aCBPdXRjb21lcyBGcmFtZXdvcmsgKGluZGljYXRvciA0LjEzKSwgdGhlIGxhdGVzdCBkYXRhIGFyZTogVGhlIHZhbHVlIGZvciBXZXN0IFN1c3NleCBoYXMgcmVkdWNlZCBmcm9tIDAuNzYgaW4gMjAxMi8xMyB0byAwLjc1MSBpbiAyMDEzLzE0LiBUaGUgdmFsdWUgZm9yIHRoZSBTb3V0aCBFYXN0IHJlbWFpbmVkIGNvbnN0YW50IGF0IDAuNzU1LiBUaGUgV2VzdCBTdXNzZXggdmFsdWUgaXMgbm90IHNpZ25pZmljYW50bHkgZGlmZmVyZW50IGZyb20gdGhlIFNvdXRoIEVhc3QgdmFsdWUsIGFuZCBzbyByZW1haW5zIGFtYmVyLiBIb3dldmVyLCB0aGUgZmlndXJlIGlzIGJldHRlciB0aGFuIHRoZSBzY29yZSBmb3IgRW5nbGFuZCwgMC43MjYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiAgKipRdWFydGVyIDEgLSBKdW5lIDIwMTYqKlxcblxcbiBcXG5cXG5IZWFsdGgtcmVsYXRlZCBxdWFsaXR5IG9mIGxpZmUg4oCTIEhlYWx0aHkgTGlmZSBFeHBlY3RhbmN5IC8gUXVhbGl0eSBvZiBMaWZlIG9mIE9sZGVyIFBlb3BsZSBUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgbW9uaXRvcmluZyBhbm51YWwgdXBkYXRlcyB0byB0aGUgR1AgcGF0aWVudCBzdXJ2ZXkgaXRlbSBhYm91dCB0aGUgaGVhbHRoIG9mIHBlb3BsZSBhZ2VkIDY1IGFuZCBvdmVyLiAoUGxlYXNlIG5vdGUgdGhhdCB0aGUgZmlndXJlcyBmb3IgV2VzdCBTdXNzZXggYXQgYW55IG9uZSB0aW1lIG1heSBpbmNsdWRlIGEgc21hbGwgcGVyY2VudGFnZSBvZiBwZW9wbGUgbGl2aW5nIGluIG90aGVyIGNvdW50aWVzIHRoYXQgYm9yZGVyIFdlc3QgU3Vzc2V4KS4gVGhpcyBnb2FsIGlzIGV4cGVjdGVkIHRvIGJlIHVwZGF0ZWQgaW4gRGVjZW1iZXIgMjAxNi4gT05TIGhhdmUgeWV0IHRvIHByb3ZpZGUgYSBkYXRlIGZvciB0aGUgcmVsZWFzZSBvZiBhbnkgbmV3IGRhdGEuIFRoZSBsYXRlc3QgZGF0YSByZWxhdGVzIHRvIDIwMTIvMTMuIFBlcmZvcm1hbmNlIGFnYWluc3QgdGhlIHRhcmdldCBpcyBjdXJyZW50bHkgQW1iZXIgKHNpbWlsYXIgdG8gdGhlIFNvdXRoIEVhc3QgYXZlcmFnZSkuXFxuXFxuXCJ9XSxcInRpdGxlX2ltYWdlXCI6XCIvYXBpL2Fzc2V0cy82QURCREY5Ny1DOUYwLTRFRDktODEyRS1GNzkyRDlDRkVFMTBcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxMi0wMS0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJzY29yZSIsInRhcmdldCI6MC43NiwidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJzc2p4LWJlZnQifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTJ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH19LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE4fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTh9fSxcInN0YXJ0XCI6XCIyMDE4LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE4LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwiaGVhbHRoeSBsaWZlIGV4cGVjdGFuY3kgXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTAzLTEzVDE1OjAxOjA4LjIxOFoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTozMDozOS43OTVaIiwidmVyc2lvbiI6IjIwMTgtMDMtMTNUMTU6MDE6MDguMjE4WiIsInRhcmdldF90b2xlcmFuY2UiOjAuNywiaWQiOiJyYndnLWNkdHoifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMDk6NDg6MDEuNDg0WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjMwOjM5Ljg1OVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQwOTo0ODowMS40ODRaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiI3cmc5LXJkemoiLCJuYW1lIjoiTkhTIEhlYWx0aCBDaGVja3MgT3V0Y29tZXMiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcInRleHRcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIjICoqVGFyZ2V0KipcXG5cXG5XZSBiZWxpZXZlIHBhc3Npb25hdGVseSB0aGF0IHRoZSBoZWFsdGggY2hlY2sgaXMgYSBncmVhdCBzdGFydGluZyBwb2ludCB0byBwZW9wbGUgaGVscGluZyB0aGVtc2VsdmVzIHRvIGxpdmUgaW4gZ29vZCBoZWFsdGggZm9yIGxvbmdlci4gV2Ugd2FudCB0byBlbmNvdXJhZ2UgbW9yZSBwZW9wbGUgdG8gdGFrZSB1cCB0aGVpciBmcmVlIGhlYWx0aCBjaGVjaywgc28gYXJlIHlvdSB1cCBmb3IgdGhlIGNoYWxsZW5nZSBpbiAyMDE3LzE4PyBJdOKAmXMgbmV2ZXIgdG9vIGxhdGUg4oCTIGlmIHlvdSB3ZXJlIG9mZmVyZWQgYSBoZWFsdGggY2hlY2sgbGFzdCB5ZWFyIGFuZCBkaWRu4oCZdCB0YWtlIGl0IHVwIOKAkyB5b3UgY2FuIHN0aWxsIGhhdmUgeW91ciBjaGVjayAtZ28gdG8gW3d3dy53ZXN0c3Vzc2V4d2VsbGJlaW5nLm9yZy51ay9oZWFsdGhjaGVja3NdWzBdIGFuZCBmaW5kIG91dCB3aGVyZSB5b3UgY2FuIGdldCBvbmUgbmVhciB0byB5b3UuXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3RzdXNzZXh3ZWxsYmVpbmcub3JnLnVrL2hlYWx0aGNoZWNrc1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJFdmVyeW9uZSBpcyBhdCByaXNrIG9mIGRldmVsb3BpbmcgaGVhcnQgZGlzZWFzZSwgc3Ryb2tlLCBkaWFiZXRlcywga2lkbmV5IGRpc2Vhc2UgYW5kIHNvbWUgZm9ybXMgb2YgZGVtZW50aWEuXFxuXFxuVGhlIGdvb2QgbmV3cyBpcyB0aGF0IHRoZXNlIGNvbmRpdGlvbnMgY2FuIG9mdGVuIGJlIHByZXZlbnRlZCAtIGV2ZW4gaWYgeW91IGhhdmUgYSBoaXN0b3J5IG9mIHRoZW0gaW4geW91ciBmYW1pbHkuXFxuXFxuSGF2ZSB5b3VyIGZyZWUgTkhTIEhlYWx0aCBDaGVjayBhbmQgeW91IHdpbGwgYmUgYmV0dGVyIHByZXBhcmVkIGZvciB0aGUgZnV0dXJlIGFuZCBiZSBhYmxlIHRvIHRha2Ugc3RlcHMgdG8gbWFpbnRhaW4gb3IgaW1wcm92ZSB5b3VyIGhlYWx0aC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiWW91ciByaXNrIG9mIGRldmVsb3BpbmcgaGVhcnQgZGlzZWFzZSwgc3Ryb2tlLCB0eXBlIDIgZGlhYmV0ZXMsIGtpZG5leSBkaXNlYXNlIGFuZCBkZW1lbnRpYSBpbmNyZWFzZXMgd2l0aCBhZ2UuIFRoZXJlIGFyZSBhbHNvIGNlcnRhaW4gdGhpbmdzIHRoYXQgd2lsbCBwdXQgeW91IGF0IGV2ZW4gZ3JlYXRlciByaXNrLiBUaGVzZSBhcmU6XFxuXFxuKiBiZWluZyBvdmVyd2VpZ2h0XFxuKiBiZWluZyBwaHlzaWNhbGx5IGluYWN0aXZlXFxuKiBub3QgZWF0aW5nIGhlYWx0aGlseVxcbiogc21va2luZ1xcbiogZHJpbmtpbmcgdG9vIG11Y2ggYWxjb2hvbFxcbiogaGlnaCBibG9vZCBwcmVzc3VyZVxcbiogaGlnaCBjaG9sZXN0ZXJvbFxcblxcblxcblNvIGV2ZW4gaWYgeW91J3JlIGZlZWxpbmcgd2VsbCwgaXQncyBzdGlsbCB3b3J0aCBoYXZpbmcgeW91ciAyMC0zMCBtaW51dGUgaGVhbHRoIGNoZWNrIG5vdyB0byBrZWVwIHlvdSBoZWFsdGh5IGZvciB0aGUgZnV0dXJlLiBcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlci9KYW51YXJ5IDIwMTgqKlxcblxcbi0gLSAtXFxuXFxuV1NDQyBleHBlY3RzIDMwLDAwMCBwZW9wbGUgdG8gYmUgb2ZmZXJlZCB0aGUgb3Bwb3J0dW5pdHkgdG8gaGF2ZSB0aGVpciBOSFMgaGVhbHRoIGNoZWNrIGluIDIwMTcvMTggd2hpY2ggZXF1YXRlcyB0byAyLDUwMCBwZXIgbW9udGguIFdTQ0MgaW50ZW5kcyB0byBkZWxpdmVyIGEgbWluaW11bSBvZiAxMSwwMDAgaGVhbHRoIGNoZWNrcyBhY3Jvc3MgdGhlIHllYXIsIG9mIHdoaWNoIDgsNTQ4IHdlcmUgZGVsaXZlcmVkIGJ5IFF1YXJ0ZXIgMy5cXG5cXG5UaGUgbnVtYmVycyBvZiBhY3R1YWwgaGVhbHRoIGNoZWNrcyBvZmZlcmVkIGFuZCBkZWxpdmVyZWQgZnJvbSBBcHJpbCB0byBEZWNlbWJlciBhcmUgaW5saW5lIHdpdGggdGhlIGxvY2FsbHkgYWdyZWVkIHBsYW4uIFRoZSBwcm9ncmFtbWUgaXMgb24gdHJhY2sgdG8gYWNoaWV2ZSBhcyBwbGFubmVkIGJ5IHllYXIgZW5kLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlci9PY3RvYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuV1NDQyBleHBlY3RzIDMwLDAwMCBwZW9wbGUgdG8gYmUgb2ZmZXJlZCB0aGUgb3Bwb3J0dW5pdHkgdG8gaGF2ZSB0aGVpciBOSFMgaGVhbHRoIGNoZWNrIGluIDIwMTcvMTggd2hpY2ggZXF1YXRlcyB0byAyLDUwMCBwZXIgbW9udGguIFdTQ0MgaW50ZW5kcyB0byBkZWxpdmVyIGEgbWluaW11bSBvZiAxMSwwMDAgaGVhbHRoIGNoZWNrcyBhY3Jvc3MgdGhlIHllYXIsIG9mIHdoaWNoIDUsNzg1IHdlcmUgZGVsaXZlcmVkIGJ5IFF1YXJ0ZXIgMi5cXG5cXG5UaGUgbnVtYmVycyBvZiBhY3R1YWwgaGVhbHRoIGNoZWNrcyBvZmZlcmVkIGFuZCBkZWxpdmVyZWQgZnJvbSBBcHJpbCB0byBTZXB0ZW1iZXIgYXJlIGluIGxpbmUgd2l0aCB0aGUgbG9jYWxseSBhZ3JlZWQgcGxhbi4gVGhlIHByb2dyYW1tZSBpcyBvbiB0cmFjayB0byBhY2hpZXZlIGFzIHBsYW5uZWQgYnkgeWVhciBlbmQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcbldTQ0MgZXhwZWN0cyAzMCwwMDAgcGVvcGxlIHRvIGJlIG9mZmVyZWQgdGhlIG9wcG9ydHVuaXR5IHRvIGhhdmUgdGhlaXIgTkhTIGhlYWx0aCBjaGVjayBpbiAyMDE3LzE4IHdoaWNoIGVxdWF0ZXMgdG8gNyw1MDAgcGVyIHF1YXJ0ZXIuIFdTQ0MgaW50ZW5kcyB0byBkZWxpdmVyIGEgbWluaW11bSBvZiAxMSwwMDAgaGVhbHRoIGNoZWNrcyBhY3Jvc3MgdGhlIHllYXIsIG9mIHdoaWNoIDIsNzU4IHdpbGwgYmUgZGVsaXZlcmVkIGluIFF1YXJ0ZXIgMS5cXG5cXG5BdCB0aGUgZW5kIG9mIFF1YXJ0ZXIgMSwgdGhlIG51bWJlciBvZiBoZWFsdGggY2hlY2tzIG9mZmVyZWQgd2FzIDksMzk2IC0gMjUlIGFib3ZlIHBsYW5uZWQuXFxuXFxuIFxcblxcbkFsdGhvdWdoIHRoaXMgaXMgc2lnbmlmaWNhbnRseSBoaWdoZXIgdGhhbiBwbGFubmVkLCBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIHllYXIgdGhlIG51bWJlciBpbnZpdGVkIHdpbGwgY29tZSBiYWNrIGluIGxpbmUuIFRoZSBudW1iZXIgb2YgaGVhbHRoIGNoZWNrcyBkZWxpdmVyZWQgd2FzIDIsODU4LCB3aGljaCBpcyAzLjYlIGFib3ZlIHBsYW5uZWQuIFRoZSBwcm9ncmFtbWUgaXMgb24gdHJhY2sgdG8gYWNoaWV2ZSBhcyBwbGFubmVkIGJ5IHllYXItZW5kLlxcblxcbldTQ0Mgd2FudHMgdG8gZW5jb3VyYWdlIG1vcmUgcGVvcGxlIHRvIHRha2UgdXAgdGhlIG9mZmVyIG9mIHRoZWlyIGZyZWUgaGVhbHRoIGNoZWNrLiBIZWFsdGggY2hlY2tzIGFyZSB3aWRlbHkgYXZhaWxhYmxlIGFjcm9zcyB0aGUgY291bnR5LiBNb3N0IEdQIHByYWN0aWNlcyBvZmZlciB0aGUgc2VydmljZSB0byB0aGVpciByZWdpc3RlcmVkIHBhdGllbnRzIGJ5IGludml0YXRpb24uIE1hbnkgcGhhcm1hY2llcyBvZmZlciB0aGUgc2VydmljZSBvbiB0aGUgaGlnaCBzdHJlZXQgYW5kIGNvbW11bml0eSBjbGluaWNzIGFyZSBoZWxkIGluIGEgdmFyaWV0eSBvZiBjb21tdW5pdHkgdmVudWVzLlxcblxcbiBcXG5cXG5EZXRhaWxzIG9mIGVsaWdpYmlsaXR5IGFuZCBhIGZ1bGwgbGlzdCBvZiB3aGVyZSB0aGUgTkhTIEhlYWx0aCBDaGVjayBTZXJ2aWNlIGlzIGF2YWlsYWJsZSBjYW4gYmUgZm91bmQgb24gW3d3dy53ZXN0c3Vzc2V4d2VsbGJlaW5nLm9yZy51ay9oZWFsdGhjaGVja3NdWzBdXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3RzdXNzZXh3ZWxsYmVpbmcub3JnLnVrL2hlYWx0aGNoZWNrc1wifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8zREU2MEM4NS1GNTBGLTQyRkItQUM1RS1GMUFDOEQ5MjI4MTlcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgbnVtYmVyIG9mIHBlb3BsZSB0YWtpbmcgdXAgdGhlIG9mZmVyIG9mIGEgTkhTIGhlYWx0aCBjaGVja1wiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoZSB0YXJnZXQgZm9yIDIwMTcvMTggaXMgMTQsNTAwIHBlb3BsZSBhZ2VkIDQwIHRvIDc0IHRha2luZyB1cCB0aGUgb2ZmZXIgb2YgYSBoZWFsdGggY2hlY2tcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNy0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJwZW9wbGUiLCJ0YXJnZXQiOjE0NTAwLCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjoxNzAwLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6InlueW4tZmh3ZSJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDE3fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIG51bWJlciBvZiBwZW9wbGUgYWNjZXNzaW5nIE5IUyBoZWFsdGggY2hlY2tzXCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpmYWxzZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJ3aXRoaW5fdG9sZXJhbmNlXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDA5OjQ4OjUxLjU5N1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTozMjo0NC4yMjBaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMDk6NDg6NTEuNTk3WiIsInRhcmdldF90b2xlcmFuY2UiOjQ1MDAsImlkIjoiN2JqMy00NTdxIn0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJybmpiLTIyYXUifV0sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMThUMTE6MDA6MjIuNjg3WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjMyOjQ0LjI4NVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xOFQxMTowMDoyMi42ODdaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9XSwidmVyc2lvbiI6IjIwMTgtMDMtMTNUMDg6NTY6MzAuNTgzWiJ9XSwiaXNfcHVibGljIjp0cnVlLCJ2ZXJzaW9uIjoiMjAxOC0wMy0xM1QwODo1NjozMC45ODlaIn19
eyJzdGF0dXMiOjQwNCwiZGF0YSI6eyJjb2RlIjoibm90X2ZvdW5kIiwiZXJyb3IiOnRydWUsIm1lc3NhZ2UiOiJVc2VyIG5vdCBmb3VuZCJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6MTA6NDQuMjQxWiIsImlkIjoiZmRqOC1ycm1rIiwiY29sdW1uMSI6InBlcmNlbnRhZ2VfY29tcGxldGVfaW5fZm91cl93ZWVrcyIsImRhdGFzZXQiOiJ5M2F5LWF5MjkiLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcInkzYXktYXkyOVwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MTA6NDQuMjQxWiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6MTU6MzMuODc0WiIsImlkIjoiNGZhZi0ybnAzIiwiY29sdW1uMSI6ImFjdHVhbCIsImRhdGFzZXQiOiJxcW56LWYyOWgiLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcInFxbnotZjI5aFwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MTU6MzMuODc0WiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6MjI6MTUuMDIwWiIsImlkIjoidGR6cC16azk1IiwiY29sdW1uMSI6InRvdGFsIiwiZGF0YXNldCI6IjdzZmItZnpzNiIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwiN3NmYi1menM2XCJ9XSxcInZhbHVlVHlwZVwiOlwib25lXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDoyMjoxNS4wMjBaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6MzU6MDUuMDQ5WiIsImlkIjoiY21nZS1ndzVwIiwiY29sdW1uMSI6ImF2ZXJhZ2VfdGltZV9pbl9jYXJlX2JlZm9yZV9tb3ZpbmdfaW5fd2l0aF9hZG9wdGl2ZV9mYW1pbHkiLCJkYXRhc2V0IjoieG5heC0yc3JxIiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCJ4bmF4LTJzcnFcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjM1OjA1LjA0OVoifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJwdWJsaWNhdGlvbl9kYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6MTc6NTcuNjk5WiIsImlkIjoiOWI2eC1paHJlIiwiY29sdW1uMSI6Im92ZXJhbGxfZWZmZWNpdmVuZXNzIiwiZGF0YXNldCI6ImtoN2UtdnN1dSIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwia2g3ZS12c3V1XCJ9XSxcInZhbHVlVHlwZVwiOlwib25lXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDoxNzo1Ny42OTlaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJ5ZWFyIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6NDg6MDQuODQ3WiIsImlkIjoiamd3My1rMjNiIiwiY29sdW1uMSI6ImFsbCIsImRhdGFzZXQiOiJnbnR6LTR1aXciLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcImdudHotNHVpd1wifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6NDg6MDQuODQ3WiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6MzI6MDEuOTI5WiIsImlkIjoicHB5bS10bXY5IiwiY29sdW1uMSI6Indlc3Rfc3Vzc2V4X2tleV9zdGFnZV8yX3Jlc3VsdCIsImRhdGFzZXQiOiIzMzZzLXN5NDkiLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcIjMzNnMtc3k0OVwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6MzI6MDEuOTI5WiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjlUMTE6MjE6NDMuODQwWiIsImlkIjoicTRkdC13YmhqIiwiY29sdW1uMSI6InNjb3JlIiwiZGF0YXNldCI6IjJldmctYTZoZSIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwiMmV2Zy1hNmhlXCJ9XSxcInZhbHVlVHlwZVwiOlwib25lXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yOVQxMToyMTo0My44NDBaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6NDQ6MjcuMTY5WiIsImlkIjoieGRnOC1jZDQyIiwiY29sdW1uMSI6InNjaG9vbHMiLCJkYXRhc2V0IjoiOHlpMy1menJ3IiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCI4eWkzLWZ6cndcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE0OjQ0OjI3LjE2OVoifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJ5ZWFyIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MTU6MDYuMTM1WiIsImlkIjoiMjc5ZC1ua3NmIiwiY29sdW1uMSI6Indlc3Rfc3Vzc2V4IiwiZGF0YXNldCI6IndoOGktaTRnNCIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwid2g4aS1pNGc0XCJ9XSxcInZhbHVlVHlwZVwiOlwib25lXCIsXCJwcmVmaWx0ZXJUeXBlXCI6XCJ1bmZpbHRlcmVkXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToxNTowNi4xMzVaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlX25hbWUiLCJ2ZXJzaW9uIjoiMjAxOC0wMS0yNVQxNToxNjozNS42ODFaIiwiaWQiOiJ0ZXh5LXNmZGoiLCJjb2x1bW4xIjoid2VzdF9zdXNzZXgiLCJkYXRhc2V0IjoiNWpjYi1naDN4IiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCI1amNiLWdoM3hcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjE2OjM1LjY4MVoifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjZUMDk6NDc6MzYuMjYwWiIsImlkIjoiZnR2ay12Y2J0IiwiY29sdW1uMSI6Im9mX2ludm9pY2VzX3BhaWQiLCJkYXRhc2V0IjoicnM0Zy01Y3ZuIiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCJyczRnLTVjdm5cIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI2VDA5OjQ3OjM2LjI2MFoifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoic3VtIn0sImRhdGVfY29sdW1uIjoiZGF0ZSIsInZlcnNpb24iOiIyMDE4LTAxLTI1VDE0OjU4OjQ2LjA5NVoiLCJpZCI6IjRzM3Ytd2l5aCIsImNvbHVtbjEiOiJidXNpbmVzc2VzX3N1cHBvcnRlZCIsImRhdGFzZXQiOiJ3ZHphLWdudmQiLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcIndkemEtZ252ZFwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTQ6NTg6NDYuMDk1WiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MDE6MTIuMjM0WiIsImlkIjoibnZhdS1yMzJuIiwiY29sdW1uMSI6ImFjaGlldmVkX3BlcmNlbnRhZ2UiLCJkYXRhc2V0IjoiNW5nZS1hODQ2IiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCI1bmdlLWE4NDZcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjAxOjEyLjIzNFoifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MTg6NTAuNjg4WiIsImlkIjoiaGVnMy15OWk2IiwiY29sdW1uMSI6ImFwcHJlbnRpY2VzIiwiZGF0YXNldCI6InY0dmotZHBlNCIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwidjR2ai1kcGU0XCJ9XSxcInZhbHVlVHlwZVwiOlwib25lXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToxODo1MC42ODhaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTQ6NTY6MDIuMTY4WiIsImlkIjoiOHp2dC1yYjhnIiwiY29sdW1uMSI6Indlc3Rfc3Vzc2V4IiwiZGF0YXNldCI6IjQ3dWktbTh3eiIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwiNDd1aS1tOHd6XCJ9XSxcInByZWZpbHRlclR5cGVcIjpcInVuZmlsdGVyZWRcIixcInZhbHVlVHlwZVwiOlwib25lXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDo1NjowMi4xNjhaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MDI6NDguNTMwWiIsImlkIjoicDI3bS0yZXU0IiwiY29sdW1uMSI6InRvdGFsX3ByZW1pc2VzX3Bhc3Nlc190aHAiLCJkYXRhc2V0IjoiM211ai1xaXRwIiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCIzbXVqLXFpdHBcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjAyOjQ4LjUzMFoifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MjE6NTAuMDEzWiIsImlkIjoiZGQzaC1qeXNkIiwiY29sdW1uMSI6ImFjdHVhbCIsImRhdGFzZXQiOiJtY2djLW45cmciLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcIm1jZ2MtbjlyZ1wifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjE6NTAuMDEzWiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MjU6NDUuMTcxWiIsImlkIjoiNWdwOS05bTVzIiwiY29sdW1uMSI6ImFjdHVhbCIsImRhdGFzZXQiOiJzc241LXQyaW0iLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcInNzbjUtdDJpbVwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjU6NDUuMTcxWiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MjY6NDMuNTI5WiIsImlkIjoia2R1bS04czV0IiwiY29sdW1uMSI6ImFjdHVhbCIsImRhdGFzZXQiOiI5dG13LWNiczkiLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcIjl0bXctY2JzOVwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjY6NDMuNTI5WiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MjM6MzUuODE3WiIsImlkIjoianNlei01OWN6IiwiY29sdW1uMSI6ImFjdHVhbCIsImRhdGFzZXQiOiJhZ3lzLWt4eTIiLCJtZXRhZGF0YSI6IntcIndpemFyZFwiOntcImZpbHRlcl9hc3RcIjpbe1widmFsdWVzXCI6W3t9XSxcImRhdGFzZXRcIjpcImFneXMta3h5MlwifV0sXCJ2YWx1ZVR5cGVcIjpcIm9uZVwifX0iLCJkYXRhc2V0X2RvbWFpbiI6InBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjM6MzUuODE3WiJ9fQ==
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6Mjk6MDIuMDUyWiIsImlkIjoiYnY4Ny12cGo2IiwiY29sdW1uMSI6InJhdGUiLCJkYXRhc2V0IjoiZGdwcC1yY3FwIiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCJkZ3BwLXJjcXBcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjI5OjAyLjA1MloifX0=
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoibW9zdF9yZWNlbnQifSwiZGF0ZV9jb2x1bW4iOiJkYXRlIiwidmVyc2lvbiI6IjIwMTgtMDEtMjVUMTU6MzA6MzkuNzM2WiIsImlkIjoic3NqeC1iZWZ0IiwiY29sdW1uMSI6ImhlYWx0aHlfbGlmZV9leHBlY3RhbmN5IiwiZGF0YXNldCI6InZuZmstc3VjayIsIm1ldGFkYXRhIjoie1wid2l6YXJkXCI6e1wiZmlsdGVyX2FzdFwiOlt7XCJ2YWx1ZXNcIjpbe31dLFwiZGF0YXNldFwiOlwidm5may1zdWNrXCJ9XSxcInZhbHVlVHlwZVwiOlwib25lXCJ9fSIsImRhdGFzZXRfZG9tYWluIjoicGVyZm9ybWFuY2Uud2VzdHN1c3NleC5nb3YudWsiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTozMDozOS43MzZaIn19
eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJjb21wdXRlIjp7ImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uIjoic3VtIn0sImRhdGVfY29sdW1uIjoiZGF0ZSIsInZlcnNpb24iOiIyMDE4LTAxLTI1VDE1OjMyOjQ0LjEyNFoiLCJpZCI6InlueW4tZmh3ZSIsImNvbHVtbjEiOiJ0YWtlX3VwX29mX2hlYWx0aF9jaGVja3MiLCJkYXRhc2V0IjoiZmJwOS1pYmRhIiwibWV0YWRhdGEiOiJ7XCJ3aXphcmRcIjp7XCJmaWx0ZXJfYXN0XCI6W3tcInZhbHVlc1wiOlt7fV0sXCJkYXRhc2V0XCI6XCJmYnA5LWliZGFcIn1dLFwidmFsdWVUeXBlXCI6XCJvbmVcIn19IiwiZGF0YXNldF9kb21haW4iOiJwZXJmb3JtYW5jZS53ZXN0c3Vzc2V4Lmdvdi51ayIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjMyOjQ0LjEyNFoifX0=