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+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIG51bWJlciBvZiBhcHByZW50aWNlcyBpbiBXZXN0IFN1c3NleFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJnb29kXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDA5OjM2OjMxLjk3M1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToxODo1MC43NzFaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMDk6MzY6MzEuOTczWiIsInRhcmdldF90b2xlcmFuY2UiOjI5MCwiaWQiOiJxaWQ1LTJrZnQifSwicmVsYXRlZF9tZWFzdXJlcyI6W3sibWV0YWRhdGEiOiIiLCJpZCI6InE2ejItYXhjcCJ9XSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMlQwOTozNjo1MS4zMjlaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MTg6NTAuODQ5WiIsInZlcnNpb24iOiIyMDE4LTA0LTEyVDA5OjM2OjUxLjMyOVoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6ImZpc24tZ2J3ZyIsIm5hbWUiOiJVbmVtcGxveW1lbnQgcmF0ZSBwZW9wbGUgYWdlZCA1MC02NCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJvcHRpb25zXCI6e1wicGFyZW50XCI6e1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTIyLFwiX3BhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTM4LFwiX3BhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTIyLFwiX3BhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkzOSxcIl9wYXJlbnRcIjp7XCJvcHRpb25zXCI6e1wicGFyZW50XCI6e1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfX0sXCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MzI5MjIsXCJfcGFyZW50XCI6e1wiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjExNjQsXCJsaXN0XCI6W119LFwibGlzdFwiOltdfX0sXCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MzI5MzgsXCJfcGFyZW50XCI6e1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfX0sXCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MzI5MjIsXCJfcGFyZW50XCI6e1wiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjExNjQsXCJsaXN0XCI6W119LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W10sXCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgJSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkZlYnJ1YXJ5IDIwMTggVXBkYXRlKipcXG5cXG4tIC0gLVxcblxcbkxhdGVzdCBmaWd1cmVzIGZvciA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2VcXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNEFCQzE5MzYtMEQ0Ni00MUM3LUEwMzYtMjg0RjE3MzE0NjE1XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIOKAkyBKYW51YXJ5IDIwMTgqKlxcblxcblRoZSB1bmVtcGxveW1lbnQgcmF0ZSBpcyBnZW5lcmFsbHkgY2FsY3VsYXRlZCBieSB0YWtpbmcgdGhlIG51bWJlciBvZiBwZW9wbGUgd2hvIGFyZSB1bmVtcGxveWVkIGFuZCBhcmUgbG9va2luZyBmb3IgYSBwYWlkIGpvYiBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGVjb25vbWljYWxseSBhY3RpdmUgcG9wdWxhdGlvbiBpLmUuIHRoZSBwb3B1bGF0aW9uIHdobyBhcmUgZWl0aGVyIGVtcGxveWVkIG9yIHVuZW1wbG95ZWQgYW5kIGxvb2tpbmcgZm9yIHdvcmsuXFxuXFxuVGhlcmUgYXJlIHR3byBtZWFzdXJlcyBvZiB1bmVtcGxveW1lbnQuXFxuXFxuVGhlIGZpcnN0IGlzIHRoZeKAmG9mZmljaWFs4oCZIGVzdGltYXRlIHVzaW5nIHRoZSBJbnRlcm5hdGlvbmFsIExhYm91ciBPcmdhbmlzYXRpb24gKElMTykgZGVmaW5pdGlvbiB3aGljaCBjb25mb3JtcyB0byB0aGUgaW50ZXJuYXRpb25hbCBkZWZpbml0aW9uIG9mIHVuZW1wbG95bWVudCwgdGhlIG1lYXN1cmUgaXMgYmFzZWQgb24gYSBxdWFydGVybHkgc2FtcGxlIHN1cnZleSBvZiBob3VzZWhvbGRzIHVuZGVydGFrZW4gYnkgT05TIGFzIHBhcnQgb2YgdGhlIEFubnVhbCBQb3B1bGF0aW9uIFN1cnZleSAoQVBTKS4gVGhlIHVuZW1wbG95bWVudCByYXRlcyBmcm9tIHRoZSBBUFMgaG93ZXZlciBhcmUgbm90IGJyb2tlbiBkb3duIGJ5IGFnZSBiYW5kcy5cXG5cXG5UaGUgc2Vjb25kIG1lYXN1cmUsIHRoZSBjbGFpbWFudCBjb3VudCwgdGVuZHMgdG8gYmUgYSBsb3dlciBtZWFzdXJlIG9mIHRoZSB0d28gYmVjYXVzZSBzb21lIHVuZW1wbG95ZWQgYXJlIG5vdCBlbnRpdGxlZCB0byBjbGFpbSBiZW5lZml0cyBvZiBhbnkgc29ydCBvciBjaG9vc2Ugbm90IHRvIGRvIHNvLiBJdCBpcyBzZWVuIGJ5IHNvbWUgYXMgbW9yZSBvZiBhIHdlbGZhcmUgY291bnQgYW5kIG5vdCBzdHJpY3RseSBhbiB1bmVtcGxveW1lbnQgY291bnQuIFRoZSBkYXRhIGlzIHB1Ymxpc2hlZCBtb250aGx5IGFuZCBpcyBpbmRpY2F0aXZlIG9mIHJlbGF0aXZlIHVuZW1wbG95bWVudCBsZXZlbHMgaW4gdGhlIGxvY2FsIGFyZWEuXFxuXFxuSG93ZXZlciwgdGhlIGNsYWltYW50IGNvdW50IGhhcyB1bmRlcmdvbmUgc3Vic3RhbnRpYWwgY2hhbmdlIG92ZXIgcmVjZW50IHllYXJzLiBJbiAyMDEzIFVuaXZlcnNhbCBDcmVkaXQgd2FzIGludHJvZHVjZWQgYW5kIHJvbGxlZCBvdXQgb3ZlciBhIHBlcmlvZCBvZiB5ZWFycyBhbmQgd2FzIGltcGxlbWVudGVkIGluIFdlc3QgU3Vzc2V4IGR1cmluZyAyMDE1LiBVbml2ZXJzYWwgQ3JlZGl0IGlzIGEgc2luZ2xlIG1vbnRobHkgcGF5bWVudCBmb3IgcGVvcGxlIGluIG9yIG91dCBvZiB3b3JrLCB3aGljaCBtZXJnZXMgdG9nZXRoZXIgc29tZSBvZiB0aGUgZXhpc3RpbmcgbWVhbnMtdGVzdGVkIGJlbmVmaXRzIGFuZCB0YXggY3JlZGl0cyBpbmNsdWRpbmcgSW5jb21lLWJhc2VkIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhbmQgaW5jb21lLXJlbGF0ZWQgRW1wbG95bWVudCBhbmQgU3VwcG9ydCBBbGxvd2FuY2UuXFxuXFxuVGhlcmUgaXMgYW4gZXhwZXJpbWVudGFsIGRhdGEgc2VyaWVzIGdpdmluZyBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBwbHVzIHRob3NlIHdobyBjbGFpbSBVbml2ZXJzYWwgQ3JlZGl0IGJlY2F1c2UgdGhleSBhcmUgb3V0IG9mIHdvcmssIGl0IHJlcGxhY2VzIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhcyB0aGUgaGVhZGxpbmUgaW5kaWNhdG9yIG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIGJlbmVmaXRzIHByaW5jaXBhbGx5IGZvciB0aGUgcmVhc29uIG9mIGJlaW5nIHVuZW1wbG95ZWQuIEhvd2V2ZXIsIHRoZSByYXRlcyBhcmUgbm90IGJyb2tlbiBkb3duIGludG8gZGlmZmVyZW50IGFnZSBncm91cHMuXFxuXFxuVGhlIGNvdW50IG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBpcyBzdGlsbCBhdmFpbGFibGUgYnkgYWdlIG9mIGNsYWltYW50IGFuZCBkdXJhdGlvbiBvZiBjbGFpbWluZy4gTG9va2luZyBhdCB0aGUgbnVtYmVycyBob3dldmVyLCBpdCBkb2VzIGFwcGVhciB0aGF0IHRoZSBudW1iZXJzIG9mIHBlcnNvbnMgYWdlZCAxNisgYXMgd2VsbCBhcyB0aG9zZSBwZW9wbGUgd2l0aGluIHRoZSA1MC02NCBhZ2UgYnJhY2tldCBjbGFpbWluZyBlaXRoZXIgdW5pdmVyc2FsIGNyZWRpdCBvciBKb2IgU2Vla2VyIEFsbG93YW5jZSBoYXMgaW5jcmVhc2VkIG92ZXIgdGhlIHllYXIgTm92ZW1iZXIgMjAxNy1Ob3YgMjAxNi5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRDFEQkI1NDUtMEU3MC00ODA2LUFFRjQtNzA3NkEwRTRDQjY2XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gd2VyZSBjbGFpbWluZyBvbmx5IEpTQSB1cCB0byBOb3ZlbWJlciAyMDE3LCBhbmQgdGhlIHJhdGUgaS5lLiB0aGUgbnVtYmVyIG9mIHRob3NlIGNsYWltaW5nIGFzIGEgcGVyY2VudGFnZSBvZiA1MC02NCBhZ2VkIHJlc2lkZW50cy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvN0E2RjdFODgtOUNFRi00NEU3LUJGRjgtQTg0MkQ4RjA4ODcwXCJ9LHtcInR5cGVcIjpcInRleHRcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgdW5lbXBsb3ltZW50IHJhdGUgaXMgZ2VuZXJhbGx5IGNhbGN1bGF0ZWQgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSBlY29ub21pY2FsbHkgYWN0aXZlIHBvcHVsYXRpb24gaS5lLiB0aGUgcG9wdWxhdGlvbiB3aG8gYXJlIGVpdGhlciBlbXBsb3llZCBvciB1bmVtcGxveWVkIChpLmUgdGhvc2Ugd2hvIGFyZSBvdXQgb2Ygd29yayBidXQgYWN0aXZlbHkgc2Vla2luZyBhbmQgYXZhaWxhYmxlIHRvIHdvcmsg4oCTIGl0IGRvZXMgbm90IGluY2x1ZGUgcmV0aXJlZCkuXFxuXFxuVGhlcmUgYXJlIHR3byBtZWFzdXJlcyBvZiB1bmVtcGxveW1lbnQuXFxuXFxuVGhlIGZpcnN0IGlzIHRoZeKAmCBvZmZpY2lhbOKAmSBlc3RpbWF0ZSB1c2luZyB0aGUgSW50ZXJuYXRpb25hbCBMYWJvdXIgT3JnYW5pc2F0aW9uIChJTE8pIGRlZmluaXRpb24gd2hpY2ggY29uZm9ybXMgdG8gdGhlIGludGVybmF0aW9uYWwgZGVmaW5pdGlvbiBvZiB1bmVtcGxveW1lbnQsIHRoZSBtZWFzdXJlIGlzIGJhc2VkIG9uIGEgcXVhcnRlcmx5IHNhbXBsZSBzdXJ2ZXkgb2YgaG91c2Vob2xkcyB1bmRlcnRha2VuIGJ5IE9OUyBhcyBwYXJ0IG9mIHRoZSBBbm51YWwgUG9wdWxhdGlvbiBTdXJ2ZXkgKEFQUykuIFRoZSBsYXRlc3QgZmlndXJlcyBoYXZlIGJlZW4gcmVwb3J0ZWQgaW4gdGhlIHByZXZpb3VzIHF1YXJ0ZXIsIHRob3VnaCBhcmUgbm90IGJyb2tlbiBkb3duIGJ5IGFnZSBiYW5kcy5cXG5cXG5UaGUgc2Vjb25kIG1lYXN1cmUsIHRoZSBjbGFpbWFudCBjb3VudCwgdGVuZHMgdG8gYmUgYSBsb3dlciBtZWFzdXJlIG9mIHRoZSB0d28gYmVjYXVzZSBzb21lIHVuZW1wbG95ZWQgYXJlIG5vdCBlbnRpdGxlZCB0byBjbGFpbSBiZW5lZml0cyBvZiBhbnkgc29ydCBvciBjaG9vc2Ugbm90IHRvIGRvIHNvLiBJdCBpcyBzZWVuIGJ5IHNvbWUgYXMgbW9yZSBvZiBhIHdlbGZhcmUgY291bnQgYW5kIG5vdCBzdHJpY3RseSBhbiB1bmVtcGxveW1lbnQgY291bnQuXFxuXFxuVGhlIGRhdGEgaXMgcHVibGlzaGVkIG1vbnRobHkgYW5kIGlzIGluZGljYXRpdmUgb2YgcmVsYXRpdmUgdW5lbXBsb3ltZW50IGxldmVscyBpbiB0aGUgbG9jYWwgYXJlYS4gVGhlIGNsYWltYW50IGNvdW50IGhhcyB1bmRlcmdvbmUgc3Vic3RhbnRpYWwgY2hhbmdlIG92ZXIgcmVjZW50IHllYXJzLiBJbiAyMDEzIFVuaXZlcnNhbCBDcmVkaXQgd2FzIGludHJvZHVjZWQgYW5kIHJvbGxlZCBvdXQgb3ZlciBhIHBlcmlvZCBvZiB5ZWFycyBhbmQgd2FzIGltcGxlbWVudGVkIGluIFdlc3QgU3Vzc2V4IGR1cmluZyAyMDE1LiBVbml2ZXJzYWwgQ3JlZGl0IGlzIGEgc2luZ2xlIG1vbnRobHkgcGF5bWVudCBmb3IgcGVvcGxlIGluIG9yIG91dCBvZiB3b3JrLCB3aGljaCBtZXJnZXMgdG9nZXRoZXIgc29tZSBvZiB0aGUgZXhpc3RpbmcgbWVhbnMtdGVzdGVkIGJlbmVmaXRzIGFuZCB0YXggY3JlZGl0cyBpbmNsdWRpbmcgSW5jb21lLWJhc2VkIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhbmQgaW5jb21lLXJlbGF0ZWQgRW1wbG95bWVudCBhbmQgU3VwcG9ydCBBbGxvd2FuY2UuXFxuXFxuVGhlcmUgaXMgYW4gZXhwZXJpbWVudGFsIGRhdGEgc2VyaWVzIGdpdmluZyBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBwbHVzIHRob3NlIHdobyBjbGFpbSBVbml2ZXJzYWwgQ3JlZGl0IGJlY2F1c2UgdGhleSBhcmUgb3V0IG9mIHdvcmssIGl0IHJlcGxhY2VzIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhcyB0aGUgaGVhZGxpbmUgaW5kaWNhdG9yIG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIGJlbmVmaXRzIHByaW5jaXBhbGx5IGZvciB0aGUgcmVhc29uIG9mIGJlaW5nIHVuZW1wbG95ZWQuIFRoZSB0b3RhbCBudW1iZXJzIG9mIGNsYWltYW50cyBhbmQgcmF0ZXMgYXMgYSBwcm9wb3J0aW9uIG9mIHJlc2lkZW50cyBhZ2VkIDE2LTY0IGFyZSBpbiB0aGUgdGFibGUgYmVsb3c6XFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzI0MkVEMjk1LUFBRjktNEFENi1BMTE1LTkyMTA0ODBDNDE2NlwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoaXMgZGF0YSBzZXQgaG93ZXZlciwgZG9lcyBub3QgZ2l2ZSBhbiB1bmVtcGxveW1lbnQgcmF0ZSBieSBhZ2UgYnJlYWtkb3duLiBUaGUgY291bnQgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcnMgQWxsb3dhbmNlIGlzIHN0aWxsIGF2YWlsYWJsZSBieSBhZ2Ugb2YgY2xhaW1hbnQgYW5kIGR1cmF0aW9uIG9mIGNsYWltaW5nLlxcblxcbiBcXG5cXG5UaGUgdGFibGUgb24gdGhlIHJpZ2h0IHNob3dzIHRoZSBudW1iZXIgb2YgNTAtNjQgeWVhciBvbGRzIHdobyB3ZXJlIGNsYWltaW5nIEpTQSBpbiBBdWd1c3QgMjAxNywgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzI3QTAxRDY1LTU3MDMtNDUyOS04OTNELUUwNTU3QzRENUQ0M1wifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgdW5lbXBsb3ltZW50IHJhdGUgaXMgZ2VuZXJhbGx5IGNhbGN1bGF0ZWQgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSBlY29ub21pY2FsbHkgYWN0aXZlIHBvcHVsYXRpb24gaS5lLiB0aGUgcG9wdWxhdGlvbiB3aG8gYXJlIGVpdGhlciBlbXBsb3llZCBvciB1bmVtcGxveWVkIChpLmUgdGhvc2Ugd2hvIGFyZSBvdXQgb2Ygd29yayBidXQgYWN0aXZlbHkgc2Vla2luZyBhbmQgYXZhaWxhYmxlIHRvIHdvcmsg4oCTIGl0IGRvZXMgbm90IGluY2x1ZGUgcmV0aXJlZCkuIFRoZXJlIGFyZSB0d28gbWVhc3VyZXMgb2YgdW5lbXBsb3ltZW50LiBUaGUgZmlyc3QgaXMgdGhlIOKAmG9mZmljaWFs4oCZIGVzdGltYXRlIHVzaW5nIHRoZSBJbnRlcm5hdGlvbmFsIExhYm91ciBPcmdhbmlzYXRpb24gKElMTykgZGVmaW5pdGlvbiB3aGljaCBjb25mb3JtcyB0byB0aGUgaW50ZXJuYXRpb25hbCBkZWZpbml0aW9uIG9mIHVuZW1wbG95bWVudCwgdGhlIG1lYXN1cmUgaXMgYmFzZWQgb24gYSBxdWFydGVybHkgc2FtcGxlIHN1cnZleSBvZiBob3VzZWhvbGRzIHVuZGVydGFrZW4gYnkgT05TIGFzIHBhcnQgb2YgdGhlIEFubnVhbCBQb3B1bGF0aW9uIFN1cnZleSAoQVBTKS4gQXMgdGhlIHVuZW1wbG95ZWQgZm9ybSBhIHNtYWxsIHBlcmNlbnRhZ2Ugb2YgdGhlIGVjb25vbWljYWxseSBhY3RpdmUgcG9wdWxhdGlvbiwgYW5kIGFzIHVuZW1wbG95bWVudCBlc3RpbWF0ZXMgZm9yIGxvY2FsIGF1dGhvcml0eSBnZW9ncmFwaGllcyBhcmUgYmFzZWQgb24gdmVyeSBzbWFsbCBzdXJ2ZXkgc2FtcGxlcywgbW9kZWwtYmFzZWQgZXN0aW1hdGVzIGhhdmUgYmVlbiBkZXZlbG9wZWQgdGhhdCBwcm92aWRlIGJldHRlciBlc3RpbWF0ZXMgb2YgdG90YWwgdW5lbXBsb3llZCBmb3IgbG9jYWwgYXV0aG9yaXRpZXMuIFRoZXNlIGVzdGltYXRlcyBhcmUgbm90IGJyb2tlbiBkb3duIGJ5IGFnZSBiYW5kcy5cXG5cXG5VbmVtcGxveW1lbnQgY291bnQgYW5kIHJhdGVzIHVuZGVyIHRoaXMgZGVmaW5pdGlvbiBmb3IgV2VzdCBTdXNzZXggYXJlOlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy85RkY0MDY0MC04OEFBLTQyQTUtQjYzRC1GNUU4MkVBQTg2ODdcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIHNlY29uZCBtZWFzdXJlIGlzIHRoZSBjbGFpbWFudCBjb3VudC4gVGhpcyB0ZW5kcyB0byBiZSB0aGUgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LiBUaGUgZGF0YSBpcyBwdWJsaXNoZWQgbW9udGhseSBhbmQgaXMgaW5kaWNhdGl2ZSBvZiByZWxhdGl2ZSB1bmVtcGxveW1lbnQgbGV2ZWxzIGluIHRoZSBsb2NhbCBhcmVhLiBUaGUgY2xhaW1hbnQgY291bnQgaGFzIHVuZGVyZ29uZSBzdWJzdGFudGlhbCBjaGFuZ2Ugb3ZlciByZWNlbnQgeWVhcnMuIEluIDIwMTMgVW5pdmVyc2FsIENyZWRpdCB3YXMgaW50cm9kdWNlZCBhbmQgcm9sbGVkIG91dCBvdmVyIGEgcGVyaW9kIG9mIHllYXJzIGFuZCB3YXMgaW1wbGVtZW50ZWQgaW4gV2VzdCBTdXNzZXggZHVyaW5nIDIwMTUuIFVuaXZlcnNhbCBDcmVkaXQgaXMgYSBzaW5nbGUgbW9udGhseSBwYXltZW50IGZvciBwZW9wbGUgaW4gb3Igb3V0IG9mIHdvcmssIHdoaWNoIG1lcmdlcyB0b2dldGhlciBzb21lIG9mIHRoZSBleGlzdGluZyBtZWFucy10ZXN0ZWQgYmVuZWZpdHMgYW5kIHRheCBjcmVkaXRzIGluY2x1ZGluZyBJbmNvbWUtYmFzZWQgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFuZCBpbmNvbWUtcmVsYXRlZCBFbXBsb3ltZW50IGFuZCBTdXBwb3J0IEFsbG93YW5jZS5cXG5cXG5UaGVyZSBpcyBhbiBleHBlcmltZW50YWwgZGF0YSBzZXJpZXMgZ2l2aW5nIGEgY291bnQgb2YgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIHBsdXMgdGhvc2Ugd2hvIGNsYWltIFVuaXZlcnNhbCBDcmVkaXQgYmVjYXVzZSB0aGV5IGFyZSBvdXQgb2Ygd29yaywgaXQgcmVwbGFjZXMgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFzIHRoZSBoZWFkbGluZSBpbmRpY2F0b3Igb2YgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgYmVuZWZpdHMgcHJpbmNpcGFsbHkgZm9yIHRoZSByZWFzb24gb2YgYmVpbmcgdW5lbXBsb3llZC4gVGhlIHRvdGFsIG51bWJlcnMgb2YgY2xhaW1hbnRzLCBhbmQgcmF0ZXMgYXMgYSBwcm9wb3J0aW9uIG9mIHJlc2lkZW50cyBhZ2VkIDE2LTY0IGFyZSBpbiB0aGUgdGFibGUgYmVsb3c6XFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzNEREI0NDQwLUE3MkQtNDZERS05OTQwLUI2NUU2MTJGMEE1OFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIGRhdGEgc2V0IGhvd2V2ZXIsIGRvZXMgbm90IGdpdmUgYW4gdW5lbXBsb3ltZW50IHJhdGUgYnkgYWdlIGJyZWFrZG93bi4gVGhlIGNvdW50IG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBpcyBzdGlsbCBhdmFpbGFibGUgYnkgYWdlIG9mIGNsYWltYW50IGFuZCBkdXJhdGlvbiBvZiBjbGFpbWluZy4gVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSBudW1iZXIgb2YgNTAtNjQgeWVhciBvbGRzIHdobyBhcmUgY2xhaW1pbmcgSlNBLCBhbmQgdGhlIHJhdGUgaS5lLiB0aGUgbnVtYmVyIG9mIHRob3NlIGNsYWltaW5nIGFzIGEgcGVyY2VudGFnZSBvZiA1MC02NCByZXNpZGVudHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzhEOEVEMzA5LTQ2QUMtNDExNC04QURCLThDQTI4QkU2MzRGNFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIE1hcmNoIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhpcyBnb2FsIGlzIHRyYWNrZWQgYnkgbWVhc3VyaW5nIHRoZSBwZXJjZW50YWdlIG9mIHBlb3BsZSBhZ2VkIDUwLTY0IGNsYWltaW5nIGpvYnNlZWtlcnMgYWxsb3dhbmNlIChKU0EpIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgcmVzaWRlbnQgcG9wdWxhdGlvbiBvZiB0aGUgc2FtZSBhZ2UuIFRoZSBKU0EgY2xhaW1hbnQgZGF0YSBpcyBwdWJsaXNoZWQgbW9udGhseSwgd2l0aCB0aGUgbGF0ZXN0IGRhdGEgYXZhaWxhYmxlIGZvciBGZWJydWFyeSAoYXMgYXQgNXRoIEFwcmlsKS5cXG5cXG5UaGUgdGFibGUgYmVsb3cgc2hvd3MgdGhlIHRvdGFsIG51bWJlcnMgYW5kIHJhdGUgb2YgSlNBIGNsYWltYW50cyBhZ2VkIDUwLTY0IHllYXJzLCB0aGUgcmF0ZSBpcyBjYWxjdWxhdGVkIGFzIGEgcHJvcG9ydGlvbiBvZiByZXNpZGVudCBwb3B1bGF0aW9uIGluIHRoYXQgYWdlIGdyb3VwLiBUaGUgcHJvcG9ydGlvbiBpcyBsb3dlc3QgaW4gTWlkIFN1c3NleCBhbmQgSG9yc2hhbSwgYW5kIGhpZ2hlc3QgaW4gQ3Jhd2xleSDigJMgcG9zc2libHkgYSByZWZsZWN0aW9uIG9mIHRoZSB5b3VuZ2VyIGFnZWQgcG9wdWxhdGlvbiBpbiBDcmF3bGV5IEJvcm91Z2ggY29tcGFyZWQgd2l0aCBvdGhlciBhcmVhcyBvZiB0aGUgY291bnR5LiBUaGUgcmF0ZSBmb3IgV2VzdCBTdXNzZXggY29udGludWVzIHRvIGJlIGxvd2VyIHRoYW4gcmVnaW9uYWxseSBvciBuYXRpb25hbGx5LCBhbmQgdGhlIG51bWJlcnMgb2YgSlNBIGNsYWltYW50cyBvdmVyIHRoZSB5ZWFyIEZlYnJ1YXJ5IDIwMTYtMjAxNyBoYXZlIGZhbGxlbiBieSAyLjQlLCBhIGdyZWF0ZXIgZGVjcmVhc2UgdGhhbiByZWdpb25hbGx5LiBIb3JzaGFtLCBob3dldmVyLCBoYXMgc2VlbiBhcmlzZSBpbiB0aGUgbnVtYmVyIG9mIGNsYWltYW50cyBpbiB0aGlzIGFnZSBicmFja2V0LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CNjFBOTk5OS1BMkI4LTQwNDItQTFBNi1ENEYyREVBNUNBOUVcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIGNoYXJ0IGJlbG93IHNob3dzIHRoYXQgV2VzdCBTdXNzZXggaGFzIGNvbnNpc3RlbnRseSBoYWQgYSBsb3dlciByYXRlIG9mIEpTQSBjbGFpbWFudHMgaW4gdGhpcyBhZ2UgYnJhY2tldCBjb21wYXJlZCB3aXRoIHRoZSByZWdpb24gb3IgaW4gRW5nbGFuZCBvdmVyIHRoZSB0aGlydGVlbiBtb250aHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0JFNzM1ODFBLTUwNDQtNEJGQS04RkM5LUYyNEMyODFBN0UzMVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJVbml2ZXJzYWwgQ3JlZGl0IENsYWltYW50cyBob3dldmVyLCByb2xsZWQgb3V0IGluIHRoZSBDb3VudHkgZHVyaW5nIDIwMTUgaXMgYSBtb3JlIGNvbXByZWhlbnNpdmUgbWVhc3VyZSBvZiB0aGUgY2xhaW1hbnQgY291bnQuIFVuaXZlcnNhbCBDcmVkaXQgaXMgYSBzaW5nbGUgbW9udGhseSBwYXltZW50IGZvciBwZW9wbGUgaW4gb3Igb3V0IG9mIHdvcmssIHdoaWNoIG1lcmdlcyB0b2dldGhlciBzb21lIG9mIHRoZSBleGlzdGluZyBtZWFucy10ZXN0ZWQgYmVuZWZpdHMgYW5kIHRheCBjcmVkaXRzIGluY2x1ZGluZyBpbmNvbWUtYmFzZWQgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFuZCBpbmNvbWUtcmVsYXRlZCBFbXBsb3ltZW50IGFuZCBTdXBwb3J0IEFsbG93YW5jZS4gVGhlcmUgaXMgYW4gZXhwZXJpbWVudGFsIGRhdGEgc2VyaWVzIGdpdmluZyBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBwbHVzIHRob3NlIHdobyBjbGFpbSBVbml2ZXJzYWwgQ3JlZGl0IHdobyBhcmUgb3V0IG9mIHdvcmssIGl0IHJlcGxhY2VzIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhcyB0aGUgaGVhZGxpbmUgaW5kaWNhdG9yIG9mIHRoZSBudW1iZXIgbyBwZW9wbGUgY2xhaW1pbmcgYmVuZWZpdHMgcHJpbmNpcGFsbHkgZm9yIHRoZSByZWFzb24gb2YgYmVpbmcgdW5lbXBsb3llZC4gVGhpcyBkYXRhIHNldCBnaXZlcyBhbiBvcHBvcnR1bml0eSB0byBjb21wYXJlIHRoZSBudW1iZXJzIG9mIHVuaXZlcnNhbCBjcmVkaXQgY2xhaW1hbnRzIHdpdGggSlNBIGNsYWltYW50cywgYW5kIHdoaWxzdCB0aGUgZGF0YSBzZXQgZG9lcyBub3QgaW5jbHVkZSByYXRlcyxieSB1c2luZyB0aGUgcmVzaWRlbnQgcG9wdWxhdGlvbiBpbiB0aGlzIGFnZSBncm91cCBmcm9tIHRoZSBKU0EgY2xhaW1hbnQgcmF0ZSB3ZSBjYW4gbWFrZSBhbiBlc3RpbWF0ZSBhcyB0byB0aGUgcmF0ZXMgY2xhaW1pbmcgdW5pdmVyc2FsIGNyZWRpdCDigJMgYXMgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy81Mzg2QkU4QS1GMTQ5LTRCQjktOEExQy1BMDRCQkMyN0RDQzZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE2KipcXG5cXG4qKioqXFxuXFxuVGhpcyBnb2FsIGlzIHRyYWNrZWQgYnkgbWVhc3VyaW5nIHRoZSAlIG9mIHBlb3BsZSBhZ2VkIDUwLTY0IGNsYWltaW5nIEpvYnNlZWtlcnMgQWxsb3dhbmNlIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgcmVzaWRlbnQgcG9wdWxhdGlvbiBvZiB0aGUgc2FtZSBhZ2UuIEZvciBXZXN0IFN1c3NleCB0aGlzIGlzIGN1cnJlbnRseSAwLjclLlxcblxcbkNsYWltYW50IGNvdW50IHJhdGVzIGFyZSBhdmFpbGFibGUgYnkgYWdlIG9mIGNsYWltYW50IGFuZCBkdXJhdGlvbiBvZiBjbGFpbWluZy4gVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSBudW1iZXIgb2YgNTAtNjQgeWVhciBvbGRzIHdobyBhcmUgY2xhaW1pbmcgSlNBLCBhbmQgdGhlIHJhdGUgaS5lLiB0aGUgbnVtYmVyIG9mIHRob3NlIGNsYWltaW5nIGFzIGEgcGVyY2VudGFnZSBvZiA1MC02NCByZXNpZGVudHMuIFRoZSBwcm9wb3J0aW9uIGlzIGxvd2VzdCBpbiBNaWQgU3Vzc2V4IGFuZCBoaWdoZXN0IGluIENyYXdsZXkuIEFsbCBsb2NhbCBhdXRob3JpdGllcyAoV2VzdCBTdXNzZXggZGlzdHJpY3RzL2Jvcm91Z2hzKSBoYXZlIGEgbG93ZXIgcHJvcG9ydGlvbiBvZiBjbGFpbWFudHMgYWdlZCA1MC02NCB5ZWFycyB0aGFuIHRoZSBuYXRpb25hbCBmaWd1cmUgb2YgMS4yJSBhbmQgb25seSBBZHVyIGFuZCBDcmF3bGV5IGhhcyBhIGhpZ2hlciByYXRlIHRoYW4gdGhlIFNvdXRoIEVhc3QgZmlndXJlIG9mIDAuOCUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzIxRTU1OTNBLTVGQzEtNDlBQi1BMDQzLTE1MjJBNkU2MDcwQVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGVyZSBpcyBhIHNpbWlsYXIgcGljdHVyZSBmb3IgdGhlIDE2LTY0IGFnZSByYW5nZSBhcyBkZXRhaWxlZCBpbiB0aGUgdGFibGUgYmVsb3c6XCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzQyQzg1MjZCLURDRTItNDg0MS04MTM5LTk3QzUyNzYwOUQyM1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcbioqVGhpcyBnb2FsIGlzIHRyYWNrZWQgYnkgbWVhc3VyaW5nIHRoZSAlIG9mIHBlb3BsZSBhZ2VkIDUwLTY0IGNsYWltaW5nIEpvYnNlZWtlcnMgQWxsb3dhbmNlIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgcmVzaWRlbnQgcG9wdWxhdGlvbiBvZiB0aGUgc2FtZSBhZ2UuKipcXG5cXG5BZ2VkIDE2LTY0IGJlbmNobWFya2luZzogVGhpcyBpcyB0aGUgcGVyY2VudGFnZSBvZiBwZW9wbGUgYWdlZCAxNiB0byA2NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLiBXZXN0IFN1c3NleCBjdXJyZW50bHkgc3RhbmRzIGF0IDAuNyUsIHRoaXMgY29tcGFyZXMgZmF2b3VyYWJseSB3aXRoIHRoZSBhdmVyYWdlIGZvciB0aGUgU291dGggRWFzdCAwLjglIGFuZCAxLjIlIGZvciBFbmdsYW5kLlxcblxcblRoZSB1bmVtcGxveW1lbnQgcmF0ZSBpcyBjYWxjdWxhdGVkIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgZWNvbm9taWNhbGx5IGFjdGl2ZSBwb3B1bGF0aW9uOyBlY29ub21pY2FsbHkgYWN0aXZlIHBlcnNvbnMgYmVpbmcgdGhvc2Ugd2hvIGFyZSBlaXRoZXIgZW1wbG95ZWQgb3IgdW5lbXBsb3llZCAoaS5lLiBkb2VzIG5vdCBpbmNsdWRlIHJldGlyZWQpLiBUaGVyZSBhcmUgdHdvIG1lYXN1cmVzIG9mIHVuZW1wbG95bWVudDsgdGhlIGZpcnN0IGlzIHRoZSDigJhvZmZpY2lhbOKAmSBlc3RpbWF0ZSB1c2luZyB0aGUgSW50ZXJuYXRpb25hbCBMYWJvdXIgT3JnYW5pc2F0aW9uIChJTE8pIGRlZmluaXRpb24gd2hpY2ggY29uZm9ybXMgdG8gdGhlIGludGVybmF0aW9uYWwgZGVmaW5pdGlvbiBvZiB1bmVtcGxveW1lbnQsIHRoZSBtZWFzdXJlIGlzIGJhc2VkIG9uIGEgcXVhcnRlcmx5IHNhbXBsZSBzdXJ2ZXkgb2YgaG91c2Vob2xkcyB1bmRlcnRha2VuIGJ5IE9OUyBhcyBwYXJ0IG9mIHRoZSBBbm51YWwgUG9wdWxhdGlvbiBTdXJ2ZXkgKEFQUykuIEhvd2V2ZXIsIGFzIHVuZW1wbG95ZWQgZm9ybSBhIHNtYWxsIHBlcmNlbnRhZ2Ugb2YgdGhlIHBvcHVsYXRpb24gYW5kIGFzIHVuZW1wbG95ZWQgZXN0aW1hdGVzIHdpdGhpbiBsb2NhbCBhdXRob3JpdGllcyBhcmUgYmFzZWQgb24gdmVyeSBzbWFsbCBzdXJ2ZXkgc2FtcGxlcyBtb2RlbC1iYXNlZCBlc3RpbWF0ZXMgaGF2ZSBiZWVuIGRldmVsb3BlZCB0aGF0IHByb3ZpZGUgYmV0dGVyIGVzdGltYXRlcyBvZiB0b3RhbCB1bmVtcGxveWVkIGZvciBsb2NhbCBhdXRob3JpdGllcywgYnV0IHRoZXNlIGVzdGltYXRlcyBhcmUgbm90IGJyb2tlbiBkb3duIGJ5IGFnZSBiYW5kcy5cXG5cXG5UaGUgc2Vjb25kIG1lYXN1cmUgaXMgdGhlIGNsYWltYW50IGNvdW50LiBUaGlzIHRlbmRzIHRvIGJlIHRoZSBsb3dlciBtZWFzdXJlIG9mIHRoZSB0d28gYmVjYXVzZSBzb21lIHVuZW1wbG95ZWQgYXJlIG5vdCBlbnRpdGxlZCB0byBjbGFpbSBiZW5lZml0cyBvZiBhbnkgc29ydCBvciBjaG9vc2Ugbm90IHRvIGRvIHNvLiBJdCBpcyBzZWVuIGJ5IHNvbWUgYXMgbW9yZSBvZiBhIHdlbGZhcmUgY291bnQgYW5kIG5vdCBzdHJpY3RseSBhbiB1bmVtcGxveW1lbnQgY291bnQuIFRoZSBkYXRhIGlzIHB1Ymxpc2hlZCBtb250aGx5IGFuZCBpcyBpbmRpY2F0aXZlIG9mIHJlbGF0aXZlIHVuZW1wbG95bWVudCBsZXZlbHMgaW4gdGhlIGxvY2FsIGFyZWEuIFRoZSBjbGFpbWFudCBjb3VudCBoYXMgdW5kZXJnb25lIHN1YnN0YW50aWFsIGNoYW5nZSBvdmVyIHJlY2VudCB5ZWFycy4gSW4gMjAxMyBVbml2ZXJzYWwgQ3JlZGl0IHdhcyBpbnRyb2R1Y2VkIGFuZCByb2xsZWQgb3V0IG92ZXIgYSBwZXJpb2Qgb2YgeWVhcnMgYW5kIHdhcyBpbXBsZW1lbnRlZCBpbiBXZXN0IFN1c3NleCBkdXJpbmcgMjAxNS4gVW5pdmVyc2FsIENyZWRpdCBpcyBhIHNpbmdsZSBtb250aGx5IHBheW1lbnQgZm9yIHBlb3BsZSBpbiBvciBvdXQgb2Ygd29yaywgd2hpY2ggbWVyZ2VzIHRvZ2V0aGVyIHNvbWUgb2YgdGhlIGV4aXN0aW5nIG1lYW5zLXRlc3RlZCBiZW5lZml0cyBhbmQgdGF4IGNyZWRpdHMgaW5jbHVkaW5nIEluY29tZS1iYXNlZCBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYW5kIGluY29tZS1yZWxhdGVkIEVtcGxveW1lbnQgYW5kIFN1cHBvcnQgQWxsb3dhbmNlLlxcblxcblRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCB3aG8gYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBiZW5lZml0cyBwcmluY2lwYWxseSBmb3IgdGhlIHJlYXNvbiBvZiBiZWluZyB1bmVtcGxveWVkLiBUaGlzIGRhdGEgc2V0IGhvd2V2ZXIsIGRvZXMgbm90IGdpdmUgYW4gdW5lbXBsb3ltZW50IHJhdGUgYnkgYWdlIGJyZWFrZG93bi4gVGhlIGNvdW50IG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBpcyBzdGlsbCBhdmFpbGFibGUgYnkgYWdlIG9mIGNsYWltYW50IGFuZCBkdXJhdGlvbiBvZiBjbGFpbWluZy4gVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSBudW1iZXIgb2YgNTAtNjQgeWVhciBvbGRzIHdobyBhcmUgY2xhaW1pbmcgSlNBLCBhbmQgdGhlIHJhdGUgaS5lLiB0aGUgbnVtYmVyIG9mIHRob3NlIGNsYWltaW5nIGFzIGEgcGVyY2VudGFnZSBvZiA1MC02NCByZXNpZGVudHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzE2ODBGMEU2LTM2NzQtNEM4OC04N0MxLUNBQkY5Q0JBRTNGN1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5DbGFpbWFudCBjb3VudCByYXRlcyBhcmUgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLiBUaGUgcHJvcG9ydGlvbiBpcyBsb3dlc3QgaW4gTWlkIFN1c3NleCBhbmQgaGlnaGVzdCBpbiBDcmF3bGV5LiBBbGwgbG9jYWwgYXV0aG9yaXRpZXMgKFdlc3QgU3Vzc2V4IGRpc3RyaWN0cy9ib3JvdWdocykgaGF2ZSBhIGxvd2VyIHByb3BvcnRpb24gb2YgY2xhaW1hbnRzIGFnZWQgNTAtNjQgeWVhcnMgdGhhbiBuYXRpb25hbGx5IGFuZCBvbmx5IENyYXdsZXkgaGFzIGEgaGlnaGVyIHJhdGUgdGhhbiB0aGUgU291dGggRWFzdCBmaWd1cmUgKGFsdGhvdWdoIENyYXdsZXkncyBmaWd1cmUgaGFzIHJlZHVjZWQgYnkgMC4yJSkuXFxuXFxuV2hhdCB3aWxsIGhhcHBlbiB0byB0aGlzIG1lYXN1cmUsIGluIHJlc3BlY3Qgb2YgdGhlIG5hdGlvbmFsL3JlZ2lvbmFsL2xvY2FsIGVjb25vbXksIGdpdmVuIHRoZSBFVSByZWZlcmVuZHVtIHJlc3VsdCwgaXMgc3RpbGwgdG8gYmUgZGV0ZXJtaW5lZC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMDUwODdENDQtNUMwQi00RkYwLUI2MDYtOUMzQjY3QzgwMEE1XCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0UwRTI3QzMzLTU5QTQtNDBEMS1CODBCLTI5RjI4MUQxNjVCNlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIE1hcmNoIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuU2luY2UgT2N0b2JlciAxOTk2IHRoZSBjbGFpbWFudCBjb3VudCBoYXMgYmVlbiBkZXJpdmVkIGZyb20gdGhlIG51bWJlcnMgb2YgSm9ic2Vla2Vy4oCZcyBBbGxvd2FuY2UgKEpTQSkgQ2xhaW1hbnRzIHJlY29yZGVkIGJ5IEpvYiBDZW50cmUgUGx1cywgaXQgaXMgY29udGludWVkIHRvIGJlIHB1Ymxpc2hlZCBtb250aGx5LiBJdCBpcyBhIG5hcnJvd2VyIG1lYXN1cmUgdGhhbiB0aGUgY291bnQgb2YgdW5lbXBsb3ltZW50IGZyb20gdGhlIE5hdGlvbmFsIFN0YXRpc3RpY3MgTGFib3VyIEZvcmNlIFN1cnZleSB3aGljaCBpcyB0YWtlbiBmcm9tIGEgY29udGludW91cyBzdXJ2ZXkgdGhhdCBPZmZpY2UgZm9yIE5hdGlvbmFsIFN0YXRpc3RpY3MgKE9OUykgdXNlcyB0byBtZWFzdXJlIGVjb25vbWljIGFjdGl2aXR5IG5hdGlvbmFsbHkuIFRvIGNvdW50IGFzIHVuZW1wbG95ZWQgcGVvcGxlIGhhdmUgdG8gc2F5IHRoZXkgYXJlIG5vdCB3b3JraW5nLCBhcmUgYXZhaWxhYmxlIGZvciB3b3JrIGFuZCBoYXZlIGVpdGhlciBsb29rZWQgZm9yIHdvcmsgaW4gdGhlIHBhc3QgZm91ciB3ZWVrcyBvciBhcmUgYXdhaXRpbmcgdG8gc3RhcnQgYSBuZXcgam9iIHRoZXkgaGF2ZSBhbHJlYWR5IG9idGFpbmVkLiBTb21lb25lIHdobyBpcyBvdXQgb2Ygd29yayBidXQgZG9lc27igJl0IG1lZXQgdGhlc2UgY3JpdGVyaWEgY291bnRzIGFzIGVjb25vbWljYWxseSBpbmFjdGl2ZS4gVGhlIGNsYWltYW50IGNvdW50IGRvZXNuJ3Qgc3VmZmVyIGZyb20gdGhlIGxpbWl0YXRpb25zIG9mIHNhbXBsZSBzaXplIGFuZCBzYW1wbGluZyBmcmFtZS4gSG93ZXZlciwgbWFueSBwZW9wbGUgd2hvIGFyZSBvdXQgb2Ygd29yayBhcmUgbm90IG5lY2Vzc2FyaWx5IGVsaWdpYmxlIGZvciBKU0EgYW5kIHRoZXJlZm9yZSBpdCBnaXZlcyBhIG11Y2ggbG93ZXIgZmlndXJlIG9mIHVuZW1wbG95ZWQgdGhhbiB0aGF0IGZyb20gdGhlIExhYm91ciBGb3JjZSBTdXJ2ZXkuXFxuXFxuVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSB0b3RhbCBudW1iZXIgb2YgSlNBIGNsYWltYW50cyBhbmQgdGhlIHVuZW1wbG95bWVudCByYXRlIGZvciBGZWJydWFyeSAyMDE1IOKAkyAyMDE2IChGZWJydWFyeSAyMDE2IGlzIHRoZSBsYXRlc3QgYXZhaWxhYmxlIGRhdGEgKGNsYWltYW50cyBhcyBhIHBlcmNlbnRhZ2Ugb2YgMTYtNjQgeWVhciBvbGQgcmVzaWRlbnRzKS4gV2VzdCBTdXNzZXggaGFzIGEgbG93ZXIgY2xhaW1hbnQgY291bnQgcmF0ZSB0aGFuIG5hdGlvbmFsbHkgYW5kIHJlZ2lvbmFsbHksIE1pZCBTdXNzZXggaGFzIHRoZSBsb3dlc3QgY2xhaW1hbnQgY291bnQgcmF0ZSBhbmQgQ3Jhd2xleSB0aGUgaGlnaGVzdCwgYnV0IGFsbCBkaXN0cmljdHMgYW5kIGJvcm91Z2hzIHdpdGhpbiBXZXN0IFN1c3NleCBoYXZlIGNsYWltYW50IGNvdW50IHJhdGVzIGxvd2VyIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2UuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0VGNDU3M0FDLTFDN0QtNDVEMS04NEUzLUMyQjE3NzRFQzJBOFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJVbml2ZXJzYWwgQ3JlZGl0IHdhcyBpbnRyb2R1Y2VkIGluIDIwMTMgd2hpY2ggd2FzIHRvIHJlcGxhY2UgYSBudW1iZXIgb2YgbWVhbnMgdGVzdGVkIGJlbmVmaXRzIGluY2x1ZGluZyB0aGUgbWVhbnMtdGVzdGVkIGVsZW1lbnQgb2YgSlNBLiBUaGlzIGhhcyBiZWVuIHJvbGxlZCBvdXQgYWNyb3NzIHRoZSBjb3VudHJ5IGFuZCBmcm9tIHRoZSBBdXR1bW4gMjAxNSBoYXMgYmVlbiByb2xsZWQgb3V0IHRocm91Z2hvdXQgYWxsIFdlc3QgU3Vzc2V4IEpvYmNlbnRyZXMuIFRoZXJlIGlzIGEgbmV3IGV4cGVyaW1lbnRhbCBkYXRhIHNldCB3aGljaCBpbmNsdWRlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBwbHVzIHRob3NlIHdobyBjbGFpbSBVbml2ZXJzYWwgQ3JlZGl0IHdobyBhcmUgb3V0IG9mIHdvcmsuIFRoZXJlIGFyZSBzb21lIGNhdmVhdHMgd2l0aCB0aGUgZGF0YSwgYW5kIHNvIGZhciwgYXMgaXTigJlzIHN0aWxsIGVhcmx5IGRheXMgb2YgVW5pdmVyc2FsIENyZWRpdCBiZWluZyBpbnRyb2R1Y2VkIHRoZXJlIGlzIGxpdHRsZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIG5ldyBkYXRhIHNldCBhbmQgdGhhdCBmb3IgSlNBIGNsYWltYW50cyBzbyBmb3IgdGhlIHRpbWUgd2Ugd2lsbCBjb250aW51ZSB0byBtb25pdG9yIEpTQSBjbGFpbWFudHMgZm9yIDUwLTY0IHllYXIgb2xkcy4gSG93ZXZlciB0aGUgcGVyY2VudGFnZSBvZiBjbGFpbWFudHMgYnkgYWdlIGdyb3VwIGZyb20gdGhlIFVuaXZlcnNhbCBDcmVkaXQgZXhwZXJpbWVudGFsIGRhdGEgc2V0IGlzIG5vdCBhdmFpbGFibGUuIFRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gc2V0cyBvZiBkYXRhIGFyZSBzaG93biBpbiB0aGUgdGFibGUgYmVsb3cuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzBEQ0FFMjExLTg5NUQtNDI2Ni1CREE4LUQ0ODRFRjI3QTFBRlwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiUmVkdWNpbmcgdGhlIG51bWJlciBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlXCIsXCJpY29uXCI6XCJ0ZXh0XCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6ZmFsc2UsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgJSBvZiBwZW9wbGUgYWdlZCA1MCDigJMgNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZS5cIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNS0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0X3R5cGUiOiJyZWxhdGl2ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6MC45LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6Ijh6dnQtcmI4ZyJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI8In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcIm1haW50YWluXCIsXCJtYWludGFpbl90eXBlXCI6XCI8XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9fSxcInN0YXJ0XCI6XCIyMDE1LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE1LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIHVuZW1wbG95bWVudCByYXRlIGZvciBwZW9wbGUgYWdlZCA1MC02NFwiLFwiaXNfYnVybmRvd25fZGlzYWJsZWRcIjpmYWxzZSxcImlzX3RyZW5kbGluZV9kaXNhYmxlZFwiOnRydWV9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDA5OjM4OjAxLjcxNVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDo1NjowMi4yMjNaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMDk6Mzg6MDEuNzE1WiIsImlkIjoibWZkeC11dGpjIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTE4VDE1OjI4OjA4Ljc5MFoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNDo1NjowMi4zMzBaIiwidmVyc2lvbiI6IjIwMTgtMDQtMThUMTU6Mjg6MDguNzkwWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoicDRzZi1zY3JlIiwibmFtZSI6IkJyb2FkYmFuZCBSb2xsIE91dCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlBsZWFzZSBub3RlIHRoYXQgdGhlIGFkZGl0aW9uYWwgcHJlbWlzZXMgZmlndXJlIGFzIHN0YXRlZCBhYm92ZSBpcyBiYXNlZCBvbiB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBkYXRhIHdoaWNoIGlzIHByb3ZpZGVkIGJ5IEJUIG9uZSBxdWFydGVyIGFmdGVyIGRlbGl2ZXJ5LlxcblxcbioqRmlicmUgYnJvYWRiYW5kIGZvciBvdXIgY291bnR54oCZcyBmdXR1cmUqKlxcblxcbkJldHRlciBDb25uZWN0ZWQgaXMgYW4gZXhjaXRpbmcgcHJvamVjdCB0byBicmluZyBiZXR0ZXIsIGZhc3RlciBicm9hZGJhbmQgdG8gb3VyIGNvdW50eS4gSW4gU3ByaW5nIDIwMTYgd2UgYWNoaWV2ZWQgb3VyIHRhcmdldCBvZiBpbmNyZWFzaW5nIGNvdmVyYWdlIGJ5IOKAmHN1cGVyZmFzdCDigJlicm9hZGJhbmQgdG8gbW9yZSB0aGFuIDkwJSBvZiB0aGUgY291bnR5LiBNb3JlIHRoYW4gNjAsMDAwIGhvbWVzIGFuZCBidXNpbmVzc2VzIGhhdmUgYWNjZXNzIHRvIG5ldyBmaWJyZSBicm9hZGJhbmQgc2VydmljZXMgd2hpY2ggd291bGQgbm90IGhhdmUgYmVlbiBhdmFpbGFibGUgdG8gdGhlbSB3aXRob3V0IHRoZSBwcm9qZWN04oCZcyBpbnRlcnZlbnRpb24uIE5vdyB3ZSBhcmUgdXNpbmcgYWRkaXRpb25hbCBmdW5kaW5nLCB0b2dldGhlciB3aXRoIG1vbmV5IHRoYXQgQlQgaXMgcGF5aW5nIGJhY2sgdG8gdGhlIENvdW50eSBDb3VuY2lsLCB0byByZWFjaCBhbiBleHRyYSA3LDAwMCBwcmVtaXNlcyBieSB0aGUgZW5kIG9mIDIwMTguIFRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvICdzdXBlcmZhc3QnIGZpYnJlIGJyb2FkYmFuZCB0byBhbiBleHRyYSAzLDMwNyBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCBzaW5jZSB0aGlzIHBoYXNlIGJlZ2FuIGluIEFwcmlsIDIwMTYuXFxuXFxuIFxcblxcbioqVGFyZ2V0KipcXG5cXG4gXFxuXFxuSW4gdG90YWwgd2UgYWltIHRvIGJlbmVmaXQgYW4gZXh0cmEgNywwMDAgcHJlbWlzZXMgYnkgRGVjZW1iZXIgMjAxOC5cXG5cXG5Nb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBhdDogW3d3dy53ZXN0c3Vzc2V4LWJldHRlcmNvbm5lY3RlZC5vcmcudWtEaWdpdGFsXVswXSBjb21tdW5pY2F0aW9ucyBpbmZyYXN0cnVjdHVyZSBpcyBiZWNvbWluZyBhcyB2aXRhbCBhcyB0cmFuc3BvcnRhdGlvbiwgd2F0ZXIgYW5kIHBvd2VyIHNlcnZpY2VzLiDigJhTdXBlcmZhc3TigJkgYnJvYWRiYW5kIHRlY2hub2xvZ3kgaGFzIHRyYW5zZm9ybWVkIGhvdyB3ZSB3b3JrLCBsaXZlIGFuZCBjb21tdW5pY2F0ZS4gVGhpcyBleGNpdGluZyB0ZWNobm9sb2d5IGNhbiBpbXByb3ZlIG91ciBxdWFsaXR5IG9mIGxpZmUsIGFuZCBoZWxwIHRvIGdyb3cgb3VyIGVjb25vbXkgYnkgZW5hYmxpbmcgbmV3IGJ1c2luZXNzZXMgdG8gc3RhcnQgdXAsIGFuZCBleGlzdGluZyBvbmVzIHRvIHByb3NwZXIuXFxuXFxuV2UgYXJlIGxvb2tpbmcgdG8gdGhlIGZ1dHVyZSBhbmQgaGF2ZSBhbiBhbWJpdGlvbiB0byBzdXBwb3J0IG91ciBwdWJsaWMgc2VydmljZXMgYnkgYnVpbGRpbmcgdGhlIG5leHQgZ2VuZXJhdGlvbiBvZiBjb25uZWN0aXZpdHksIGdpdmluZyBzcGVlZHMgZnJvbSAxR2IgKDEwMDBtYnBzKSB1c2luZyBwdXJlIG9wdGljYWwgZmlicmUuXFxuXFxuIFxcblxcblRoZSBnb3Zlcm5tZW50IHdhbnRzIHRvIGluY3JlYXNlIHRoZSBhbW91bnQgb2YgcHVyZSBvcHRpY2FsIG9yIOKAmGZ1bGwgZmlicmXigJkgaW5mcmFzdHJ1Y3R1cmUgY292ZXJpbmcgdGhlIFVLLiBDdXJyZW50bHkgb25seSBhcm91bmQgMiUgb2YgcHJlbWlzZXMgaW4gdGhlIFVLIGhhdmUgYWNjZXNzIHRvIHRoZSBmYXN0ZXN0IGJyb2FkYmFuZCBzcGVlZHMgd2hpY2ggdHJhdmVsIGFsbCB0aGUgd2F5aW50byBidWlsZGluZ3Mgb3ZlciBmdWxsIGZpYnJlIGluZnJhc3RydWN0dXJlLiBQdWJsaWMgc2VydmljZXMgYXJlIGV2b2x2aW5nIGFuZCBzb29uIHdpbGwgYmUgZGVsaXZlcmVkIGluIG5ldyBhbmQgZGlnaXRhbCB3YXlzLCB3aGljaCB3aWxsIHJlcXVpcmUgZmFzdGVyIGRvd25sb2FkIGFuZCB1cGxvYWQgc3BlZWRzIGFuZCBncmVhdGVyIGJhbmR3aWR0aC4gV2Ugd2FudCB0byBpbnZlc3QgaW4gZnVsbCBmaWJyZSBpbmZyYXN0cnVjdHVyZSBub3cgdG8gZ2V0IG91ciBwdWJsaWMgYnVpbGRpbmdzIGFuZCBvdXIgc2VydmljZXMgcmVhZHkgZm9yIHRoZSBmdXR1cmUuXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3RzdXNzZXgtYmV0dGVyY29ubmVjdGVkLm9yZy51a0RpZ2l0YWxcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvICdzdXBlcmZhc3QnIGZpYnJlIGJyb2FkYmFuZCB0byBhbiBleHRyYSAzLDMwNyBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCBzaW5jZSB0aGlzIHBoYXNlIGJlZ2FuIGluIEFwcmlsIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHByb2plY3QgaXMgcHJvZ3Jlc3Npbmcgd2VsbCB3aXRoIGRldGFpbGVkIG5ldHdvcmsgZGVzaWduLCBwbGFubmluZyBhbmQgZW5naW5lZXJpbmcgc3VydmV5cyBjb250aW51aW5nIGFuZCBzbyBmYXIgaGFzIGRlbGl2ZXJlZCBhY2Nlc3MgdG8gXFxcInN1cGVyZmFzdFxcXCIgZmlicmUgYnJvYWRiYW5kIHRvIDEsODcxIHByZW1pc2VzIGluIFdlc3QgU3Vzc2V4IHNpbmNlIHRoaXMgcGhhc2UgYmVnYW4gaW4gQXByaWwgMjAxNi4gVGhpcyBpcyBjdXJyZW50bHkgMjYuNyUgb2Ygb3VyIHRhcmdldCB0byByZWFjaCA3LDAwMCBwcmVtaXNlcyBieSB0aGUgZW5kIG9mIFNlcHRlbWJlciAyMDE4LiBUaGUgcHJvamVjdCBpcyBvbiB0cmFjayBpbiB0ZXJtcyBvZiBhY3R1YWwgYnVpbGQgcHJvZ3JhbW1lLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkFwcmlsIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvXFxcInN1cGVyZmFzdFxcXCIgZmlicmUgYnJvYWRiYW5kIHRvIDEsMjAzIHByZW1pc2VzIGluIFdlc3QgU3Vzc2V4IHNpbmNlIHRoaXMgcGhhc2UgYmVnYW4gaW4gQXByaWwgMjAxNi5cXG5cXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlRhcmdldCoqXFxuXFxuSW4gdG90YWwgd2UgYWltIHRvIGJlbmVmaXQgYW4gZXh0cmEgNywwMDAgcHJlbWlzZXMgYnkgU2VwdGVtYmVyIG9mIDIwMTguXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvODMxRjdBN0QtM0ZBOS00RjEzLTg4MTQtNzI1OUIzQUYyNkU5XCJ9XV19XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzaW5nIHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdpdGggYWNjZXNzIHRvIFxcXCJzdXBlcmZhc3RcXFwiIGZpYnJlIGJyb2FkYmFuZCBcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJXZSBhaW0gdG8gaW5jcmVhc2UgdGhlIG51bWJlciBvZiBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCB3aXRoIGFjY2VzcyB0byBcXFwic3VwZXJmYXN0XFxcIiBmaWJyZSBicm9hZGJhbmQgYnkgdGhlIGVuZCBvZiBEZWNlbWJlciAyMDE4IGJ5IGF0IGxlYXN0IDcsMDAwXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvMjU2OUM2NkEtMjdBMy00MTM2LUE1MkYtQUMyREE0QUUzOTUwXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTYtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoicHJlbWlzZXMiLCJ0YXJnZXQiOjcwMDAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoicDI3bS0yZXU0In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH19LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIGFkZGl0aW9uYWwgdG90YWwgaG9tZXMgcGFzc2VkIChUSFApIFwiLFwiaXNfYnVybmRvd25fZGlzYWJsZWRcIjpmYWxzZSxcImlzX3RyZW5kbGluZV9kaXNhYmxlZFwiOmZhbHNlLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJnb29kXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDE1OjU2OjI1LjA1N1oiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNTowMjo0OC41OTJaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMTU6NTY6MjUuMDU3WiIsInRhcmdldF90b2xlcmFuY2UiOjcwMCwiaWQiOiJyenk5LTQ3NWUifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMTU6NTk6NDYuODc1WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjAyOjQ4LjY1NFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQxNTo1OTo0Ni44NzVaIiwiY3JlYXRlZF9ieSI6IjNkcHYtanI4bSJ9XSwidmVyc2lvbiI6IjIwMTgtMDEtMjZUMDk6NTE6MzUuNjQ2WiJ9LHsiaWQiOiJxZ3lyLTg2ZjUiLCJuYW1lIjoiSW5kZXBlbmRlbmNlIGZvciBsYXRlciBsaWZlIiwiZ29hbHMiOlt7ImlkIjoiN2duZy0zZDljIiwibmFtZSI6IkNob2ljZSBvdmVyIE93biBDYXJlIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyAqKkNob2ljZSBvdmVyIG93biBDYXJlKipcXG5cXG4tIC0gLVxcblxcblRoaXMgbWVhc3VyZSBpcyBhIHJlZmxlY3Rpb24gb2YgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwncyBkcml2ZSB0byBvZmZlciBwZW9wbGUgY2hvaWNlIGFuZCBpbmRlcGVuZGVuY2UuIFJlc2VhcmNoIGhhcyBpbmRpY2F0ZWQgdGhhdCByZWNlaXB0IG9mIHNlbGYtZGlyZWN0ZWQgc3VwcG9ydCwgdmlhIHBlcnNvbmFsIGJ1ZGdldHMsIGhhcyBhIHBvc2l0aXZlIGVmZmVjdCBpbiB0ZXJtcyBvZiBpbXBhY3Qgb24gd2VsbC1iZWluZywgaW5jcmVhc2VkIGNob2ljZSBhbmQgY29udHJvbCwgY29zdCBpbXBsaWNhdGlvbnMgYW5kIGltcHJvdmluZyBvdXRjb21lcy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIGFubnVhbCBBZHVsdHMgU29jaWFsIENhcmUgVXNlciBTdXJ2ZXkgd2FzIGNvbXBsZXRlZCBpbiBBcHJpbCBhbmQgTWF5IDIwMTcuIFN1cnZleXMgd2VyZSBzZW50IG91dCB0byBjdXN0b21lcnMgYW5kIGNhcmVycyB3aG8gY3VycmVudGx5IHJlY2VpdmUgYSBzZXJ2aWNlIGZyb20gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwg4oCTIHRoZXJlIHdhcyBhIHNpZ25pZmljYW50IGltcHJvdmVtZW50IGluIHRoZSByZXR1cm4gb2YgdGhlIHN1cnZleXMgZnJvbSAzNyAlIHRvIDUxICUgYW5kIHRoZSBvdXRjb21lcyB3ZXJlIHJlcG9ydGVkIGluIGxpbmUgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIGZyb20gdGhlIERlcGFydG1lbnQgb2YgSGVhbHRoLiBUaGUgc2NvcmUgdG8gdGhlIHF1ZXN0aW9uIHdhcyA3Ny42ICUgd2hpY2ggaXMgYW4gaW1wcm92ZW1lbnQgb24gbGFzdCB5ZWFyLiBUaGUgUHVibGljIEhlYWx0aCBSZXNlYXJjaCB1bml0IGFyZSBjdXJyZW50bHkgdW5kZXJ0YWtpbmcgYSBtb3JlIGRldGFpbGVkIGFuYWx5c2lzIG9mIHRoZSBhbnN3ZXJzOyB0aGlzIHdpbGwgYmUgcmVhZHkgaW4gQXVndXN0IGFuZCB3aWxsIGJlIGNvbnNpZGVyZWQgYnkgdGhlIFF1YWxpdHkgQXNzdXJhbmNlIE1hbmFnZW1lbnQgQm9hcmQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyAqKkNhcmUgRnVuZGluZyAmIEFkdmljZSoqXFxuXFxuKipDYXJld2lzZSBDYXJlIEZ1bmRpbmcgU2NoZW1lKipcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiUGVvcGxlIGFyZSBsaXZpbmcgbG9uZ2VyIGFuZCBmb3Igc29tZSB0aGlzIG1heSBtZWFuIG1vdmluZyBpbnRvIGEgY2FyZSBob21lLiBUaGlzIGRlY2lzaW9uIGlzIGxpa2VseSB0byBiZSBvbmUgb2YgdGhlIG1vc3QgZXhwZW5zaXZlIGRlY2lzaW9ucyBwZW9wbGUgbWFrZSBpbiB0aGVpciBsaXZlcyBhbmQgdGhlIHByb3NwZWN0IG9mIHBheWluZyBmb3IgbG9uZy10ZXJtIGNhcmUgY2FuIGZlZWwgZGF1bnRpbmcuIFlldCBtYW55IGRvIG5vdCBzZWVrIGluZm9ybWF0aW9uIGFuZCBhZHZpY2UgdG8gaGVscCB0aGVtIGNvbnNpZGVyIGFsbCB0aGUgb3B0aW9ucyBhdmFpbGFibGUgYW5kIG1ha2UgaW5mb3JtZWQgZGVjaXNpb25zLiBUaGlzIHNvcnQgb2YgcGxhbm5pbmcgaXMgdml0YWwgYmVjYXVzZSBiYXNlZCBvbiBjdXJyZW50IGVzdGltYXRlcywgV2VzdCBTdXNzZXggcmVzaWRlbnRzIGNhbiBleHBlY3QgdG8gcGF5IGFuIGF2ZXJhZ2Ugb2YgwqM1MCwwMDAgb3IgbW9yZSBwZXIgeWVhciBmb3IgYSByZXNpZGVudGlhbCBjYXJlIGhvbWUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRvIGVuc3VyZSB0aGF0IHRoZSByZXNpZGVudHMgb2YgV2VzdCBTdXNzZXggaGF2ZSBhY2Nlc3MgdG8gaGlnaCBxdWFsaXR5IGluZm9ybWF0aW9uIGFuZCBhZHZpY2UgYWJvdXQgY2FyZSBhbmQgc3VwcG9ydCBvcHRpb25zIGFuZCB0aGUgbW9zdCBjb3N0IGVmZmVjdGl2ZSB3YXlzIG9mIHBheWluZyBmb3IgdGhpcywgb3VyIENhcmV3aXNlIENhcmUgRnVuZGluZyBzY2hlbWUgd2FzIGVzdGFibGlzaGVkIGJ5IEFnZSBVSyBXZXN0IFN1c3NleCwgdGhlIFNvY2lldHkgb2YgTGF0ZXIgTGlmZSBBZHZpc2VycyAoU09MTEEpLCB0aGUgQ291bnR5IENvdW5jaWzigJlzIEFkdWx0c+KAmSBTZXJ2aWNlcyBhbmQgVHJhZGluZyBTdGFuZGFyZHMgZGVwYXJ0bWVudHMgYW5kIFdlc3QgU3Vzc2V4IFBhcnRuZXJzIGluIENhcmUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkNhcmV3aXNlIGhhcyBhIHBhbmVsIG9mIGFwcHJvdmVkIGluZGVwZW5kZW50IHNwZWNpYWxpc3QgZmluYW5jaWFsIGFkdmlzZXJzIHRvIGhlbHAgcGVvcGxlIGFmZm9yZCB0aGUgYmVzdCBxdWFsaXR5IGNhcmUgYXQgaG9tZSBvciBpbiB0aGVpciBwcmVmZXJyZWQgY2FyZSBob21lIGZvciBhcyBsb25nIGFzIHRoZXkgbmVlZCBpdCBhbmQgc28gcHJldmVudCBwZW9wbGUgcnVubmluZyBvdXQgb2YgbW9uZXkgYW5kIGJlY29taW5nIHRoZSBmaW5hbmNpYWwgcmVzcG9uc2liaWxpdHkgb2YgdGhlIENvdW50eSBDb3VuY2lsLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0IyNDFCNEM2LTEzMzEtNDcwQi1CMzYxLUY2RjFFQUMxREQyNFwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDYXJld2lzZSBoYXMgYmVlbiBvcGVyYXRpb25hbCBzaW5jZSAyMDExIGFuZCB0aGUgQ291bnR5IENvdW5jaWwgaGFzLCB0aGVyZWZvcmUsIGJlZW4gaW4gYSBnb29kIHBvc2l0aW9uIHRvIGV2YWx1YXRlIHBlcmZvcm1hbmNlIG92ZXIgYSBmYWlybHkgbG9uZyBwZXJpb2QgYW5kIHRha2UgYWN0aW9uIGFzIG5lY2Vzc2FyeSB0byByZWZpbmUgdGhlIG1vZGVsLiBDb25zZXF1ZW50bHksIHdlIHdlcmUgd2VsbC1wb3NpdGlvbmVkIHRvIG1lZXQgb3VyIGR1dHkgdW5kZXIgdGhlIENhcmUgQWN0IHRvIGVuc3VyZSB0aGF0IHJlc2lkZW50cyBoYXZlIGFjY2VzcyB0byBpbXBhcnRpYWwgZmluYW5jaWFsIGFkdmljZSBhYm91dCBwYXlpbmcgZm9yIGNhcmUgYW5kIHN1cHBvcnQuIFRoaXMgYWxzbyBtZWFucyB0aGF0IENhcmV3aXNlIGhhcyBldm9sdmVkIGludG8gYSBtb2RlbCB0aGF0IGlzIGJlaW5nIHVzZWQgYXMgYW4gZXhlbXBsYXIgb2YgZ29vZCBwcmFjdGljZSBhdCBhIG5hdGlvbmFsIGxldmVsLCBub3QgbGVhc3QgYmVjYXVzZSBvZiB0aGUgaGlnaCBsZXZlbCBvZiBjdXN0b21lciBjaG9pY2UgdGhhdCBpcyBidWlsdCBpbnRvIHRoZSBtb2RlbC4gVGhlIHN1Y2Nlc3NmdWwgcGFydG5lcnNoaXAgc3R5bGUgYW5kIHRoZSByaXNrIG1hbmFnZW1lbnQgYXBwcm9hY2ggYWRvcHRlZCBieSB0aGUgQ291bnR5IENvdW5jaWwgaGF2ZSBhbHNvIGJlZW4gaGlnaGxpZ2h0ZWQgdG8gb3RoZXIgbG9jYWwgYXV0aG9yaXRpZXMgYXMgcG9zaXRpdmUgZWxlbWVudHMgb2Ygb3VyIGFwcHJvYWNoLlxcblxcblByZXNlbnRhdGlvbnMgb24gdGhlIENhcmV3aXNlIG1vZGVsIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiBUTEFQIChUaGluayBMb2NhbCwgQWN0IFBlcnNvbmFsKS9EZXBhcnRtZW50IG9mIEhlYWx0aCBuYXRpb25hbCB3b3Jrc2hvcHMgaGVsZCB0byBzdXBwb3J0IGxvY2FsIGF1dGhvcml0aWVzIGluIHBsYW5uaW5nIHRvIGRpc2NoYXJnZSB0aGVpciBkdXR5IHVuZGVyIHRoZSBDYXJlIEFjdCAyMDE0LiBDYXJld2lzZSBoYXMgaW5mb3JtZWQgdGhlIERlcGFydG1lbnQgb2YgSGVhbHRoIGZpbmFsIGd1aWRhbmNlIGZvciBsb2NhbCBhdXRob3JpdGllcyBvbiB0aGUgcHJvdmlzaW9uIG9mIGZpbmFuY2lhbCBpbmZvcm1hdGlvbiBhbmQgYWR2aWNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIjICoqSGVyZeKAmXMgaG93IGZpbmFuY2lhbCBhZHZpY2UgZnJvbSBhIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0IGhlbHBlZCBvbmUgV2VzdCBTdXNzZXggZmFtaWx5LioqXFxuXFxuR3JhY2UqIHdhcyA4NCB3aGVuIGhlciBkYXVnaHRlciBhbmQgbGF3eWVyIGFza2VkIGZvciBhZHZpY2Ugb24gY292ZXJpbmcgaGVyIGNhcmUgY29zdHMuIEdyYWNlIHN1ZmZlcmVkIHNvbWUgcGh5c2ljYWwgcHJvYmxlbXMgYW5kIG1pbGQgZGVtZW50aWEgd2hpY2ggbWVhbnQgdGhhdCBzaGUgbmVlZGVkIGZ1bGwtdGltZSByZXNpZGVudGlhbCBjYXJlLiBHcmFjZSBvd25lZCBhIGhvdXNlIGFuZCBhZnRlciBpdCB3YXMgc29sZCB0aGF0IGdhdmUgaGVyIGFzc2V0cyBvZiDCozIxMCwwMDAuIFdlIGVzdGltYXRlZCB0aGF0IGlmIEdyYWNlIGRpZCBub3RoaW5nIGhlciBtb25leSB3b3VsZCBydW4gZG93biBhbmQgc2hlIHdvdWxkIG5lZWQgaGVyIGNhcmUgdG8gYmUgcGFpZCBmb3IgYnkgdGhlIGxvY2FsIGF1dGhvcml0eSBhZnRlciBzZXZlbiB5ZWFycy5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMEFDQkVFRDQtQzBBMC00MUQxLUIzNzEtQzQ3NDQ4ODlCODA2XCJ9XSxbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQWZ0ZXIgbG9va2luZyBhdCBHcmFjZeKAmXMgc2l0dWF0aW9uIHdlIGNvbnNpZGVyZWQgYSBudW1iZXIgb2Ygb3B0aW9ucy4gT25lIG9wdGlvbiB3YXMgdG8gYXJyYW5nZSBhbiBpbW1lZGlhdGUgY2FyZSBwbGFuIGZvciBhIHByZW1pdW0gb2YgwqMxMzgsMDAwLiBJdCB3b3VsZCBwYXkgaGVyIGNhcmUgcHJvdmlkZXIgwqMyLDEwMCBhIG1vbnRoLCB3aGljaCB3b3VsZCBpbmNyZWFzZSBlYWNoIEFwcmlsIGJ5IDUlIGFuZCBiZSBwYXlhYmxlIGZvciBoZXIgbGlmZXRpbWUuIEhvd2V2ZXIsIHRoaXMgb3B0aW9uIHdvdWxkIG9ubHkgbGVhdmUgwqM3MiwwMDAgb2YgaGVyIGVzdGF0ZSBhbmQgR3JhY2UgYW5kIGhlciBmYW1pbHkgd2VyZSB1bmNvbWZvcnRhYmxlIHdpdGggdGhlIGlkZWEgdGhhdCBzdWNoIGEgbGFyZ2Ugc3VtIGNvdWxkIGJlIGxvc3QgaWYgR3JhY2UgZGllZCBzb29uIGFmdGVyIGJ1eWluZyB0aGUgcGxhbi4gSW5zdGVhZCB3ZSBhZ3JlZWQgdGhhdCBHcmFjZSBzaG91bGQgYnV5IGEgZml2ZS15ZWFyIGRlZmVycmVkIGNhcmUgcGxhbiBhdCBhIGNvc3Qgb2YgwqMyNiwxMDAuIFRoaXMgcGxhbiBoYXMgdGhlIHNhbWUgbG9uZy10ZXJtIGJlbmVmaXQgYXMgdGhlIGltbWVkaWF0ZSBwbGFuLCBidXQgd2lsbCBvbmx5IHBheSBvdXQgaWYgR3JhY2Ugc3RpbGwgbmVlZHMgY2FyZSBpbiBmaXZlIHllYXJz4oCZIHRpbWUuIEluIHRoZSBtZWFudGltZSBzaGUgZnVuZHMgdGhlIGNhcmUgZnJvbSBoZXIgYXNzZXRzLiBPdmVyYWxsIHRoZSBsb25nLXRlcm0gY29zdCBvZiB0aGlzIG9wdGlvbiBpcyBncmVhdGVyIGJ1dCBHcmFjZSBhbmQgdGhlIGZhbWlseSB3ZXJlIGhhcHBpZXIgd2l0aCB0aGlzIHNvbHV0aW9uIGFzIHRoZXkgd291bGQgZmVlbCB0aGF0IHRoZSBleHRyYSBtb25leSBoYWQgYmVlbiBzcGVudCBvbiBHcmFjZeKAmXMgY2FyZS4gT25jZSBwYWlkLCB0aGUgcHJlbWl1bSBjYW4gbmV2ZXIgYmUgcmV0dXJuZWQsIGJ1dCBHcmFjZSBhbmQgaGVyIGZhbWlseSBmb3VuZCB0aGUgcGxhbiBnYXZlIHRoZW0gZ3JlYXQgcGVhY2Ugb2YgbWluZC4gR3JhY2Uga25ldyB0aGF0IHRoZSBpbmNvbWUgZnJvbSB0aGUgcGxhbiB3b3VsZCBiZSB0aGVyZSBubyBtYXR0ZXIgaG93IGxvbmcgc2hlIGxpdmVkLiBTaGUgZGlkbuKAmXQgaGF2ZSB0byB3b3JyeSBhYm91dCBoZXIgbW9uZXkgcnVubmluZyBvdXQgYW5kIHNoZSB3b3VsZCBzdGlsbCBoYXZlIG1vbmV5IHRvIGxlYXZlIGFuIGluaGVyaXRhbmNlIGZvciBoZXIgZmFtaWx5LiBPbiBHcmFjZXMgZGVhdGggc2hlIHdpbGwgbGVhdmUgYW4gZXN0YXRlIGJldHdlZW4gwqMxODQsMDAwIGFuZCDCozY3LDAwMCwgZGVwZW5kaW5nIHVwb24gaG93IGxvbmcgc2hlIGxpdmVzLlxcblxcblRoaXMgaXMganVzdCBvbmUgZXhhbXBsZSBvZiBob3cgQ2FyZXdpc2UgY2FuIGhlbHAgcGVvcGxlIG1ha2UgbW9yZSBpbmZvcm1lZCBjaG9pY2VzIGF0IHRoaXMgc29tZXRpbWVzIHZlcnkgc3RyZXNzZnVsIHN0YWdlIGluIHRoZWlyIGxpdmVzLlxcblxcbiogTmFtZSBjaGFuZ2VkICAgXFxuXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipQZXJmb3JtYW5jZSoqXFxuXFxuVGhlIHBvdGVudGlhbCBmaW5hbmNpYWwgYmVuZWZpdHMgdG8gYm90aCBpbmRpdmlkdWFscyBhbmQgdGhlIENvdW50eSBDb3VuY2lsLCBhbmQgdGhlIHByZWRpY3RlZCBkZW1vZ3JhcGhpYyBpbmNyZWFzZSBpbiBudW1iZXJzIG9mIG9sZGVyIHBlb3BsZSwgcGFydGljdWxhcmx5IHRob3NlIHdpdGggZGVtZW50aWEsIG92ZXIgdGhlIGNvbWluZyB5ZWFycywgbWVhbnMgdGhhdCBwcm9tb3Rpb24gb2YgdGhlIENhcmV3aXNlIHNjaGVtZSBpcyBpbXBlcmF0aXZlLiBDYXJlZnVsbHkgdGFyZ2V0ZWQgbWFya2V0aW5nIGFuZCBwcm9tb3Rpb25zIGNhbXBhaWducyByYW4gdGhyb3VnaG91dCAyMDE0LTE1LCAyMDE1LTE2IGFuZCAyMDE2LTE3LiBBIG1hcmtldGluZyBjYW1wYWlnbiBmb3IgMjAxNy0xOCBpcyBub3cgdW5kZXJ3YXkgdXNpbmcgdGhlIG91dGNvbWUgb2YgZXZhbHVhdGlvbiBmcm9tIHRoZSBwcmV2aW91cyB0aHJlZSB5ZWFycy4gVGhlIG1hcmtldGluZyBhaW1zIHRvIGVuc3VyZSB0aGF0IHRoZSBtb21lbnR1bSBvZiBwYXN0IGNhbXBhaWducyBpcyBtYWludGFpbmVkIGFuZCBwdWJsaWMgYXdhcmVuZXNzIGluY3JlYXNlZC4gV29ya2luZyBjbG9zZWx5IHdpdGggUG9saWN5ICYgQ29tbXVuaWNhdGlvbnMgdGhlIDIwMTctMTggY2FtcGFpZ24gd2lsbCByZWZsZWN0IHRoZSBBZHVsdHMnIFNlcnZpY2VzIHZpc2lvbiBmb3IgdGhlIGZ1dHVyZSB3aGljaCBmb2N1c2VzIG9uIGluY3JlYXNpbmcgcGVvcGxl4oCZcyBpbmRlcGVuZGVuY2UgYW5kIHdlbGxiZWluZyBhbmQgZW5jb3VyYWdpbmcgbW9yZSBwZW9wbGUgdG8gcGxhbiBlYXJseSBmb3IgdGhlaXIgbG9uZy10ZXJtIGNhcmUgbmVlZHMgaW4gb2xkZXIgYWdlLlxcblxcbldlIGtub3cgdGhhdCBtYW55IHBlb3BsZSBkbyBub3QgaW1tZWRpYXRlbHkgd2FudCBhIHJlZmVycmFsIHRvIGEgY2FyZSBmZWVzIHNwZWNpYWxpc3QgYnV0IHdvdWxkIHJhdGhlciBoYXZlIGluZm9ybWF0aW9uIGluIHRoZSBmaXJzdCBpbnN0YW5jZSBhbmQgdGhlbiBtYWtlIGEgbWVhc3VyZWQgZGVjaXNpb24gbGF0ZXIgYWJvdXQgd2hldGhlciB0byBwcm9jZWVkLiBJdCBpcywgdGhlcmVmb3JlLCByZWNvZ25pc2VkIHRoYXQgdGhlIG51bWJlciBvZiByZWZlcnJhbHMgaXMgbmV2ZXIgbGlrZWx5IHRvIGluY3JlYXNlIGRyYW1hdGljYWxseSBpbiBhIHNob3J0IHBlcmlvZCBvZiB0aW1lIGFuZCB0aGF0IGFueSBjYW1wYWlnbiB3aWxsIHRha2UgdGltZSB0byB5aWVsZCByZXN1bHRzLiBQYXJ0bmVycywgaW5jbHVkaW5nIHRoZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMsIGhhdmUgYWR2aXNlZCB0aGF0IHRoZSBxdWFsaXR5IG9mIHJlZmVycmFscyBzaG91bGQgYmUgYSBrZXkgZm9jdXMgcmF0aGVyIHRoYW4gc2ltcGx5IGFpbWluZyB0byBpbmNyZWFzZSB0aGUgbnVtYmVycy5cXG5cXG5BZ2UgVUsgV2VzdCBTdXNzZXggcHJvdmlkZXMgYSBmcmVlIE1vbmV5IEFkdmljZSBzZXJ2aWNlIHdoaWNoIGlzIHBhcnQgb2YgdGhlIENhcmV3aXNlIHNjaGVtZTsgdGhpcyBzZXJ2aWNlIGluY2x1ZGVzIGJlbmVmaXRzIGFkdmljZS4gTWF4aW1pc2luZyBiZW5lZml0IGVudGl0bGVtZW50IGVuYWJsZXMgcGVvcGxlIHRvIHB1cmNoYXNlIGNhcmUgYW5kIHJlbWFpbiBsaXZpbmcgaW5kZXBlbmRlbnRseSBpbiB0aGVpciBvd24gaG9tZXMgZm9yIGFzIGxvbmcgYXMgcG9zc2libGUgYW5kIGNhbiByZWR1Y2UgdGhlIG5lZWQgZm9yIHJlbGlhbmNlIG9uIENvdW50eSBDb3VuY2lsIGZ1bmRpbmcuIEluY3JlYXNlZCBmaW5hbmNpYWwgc2VjdXJpdHkgY2FuIGFsc28gZW5oYW5jZSBwZW9wbGXigJlzIHdlbGxiZWluZywgYSBrZXkgcHJpbmNpcGxlIG9mIHRoZSBDYXJlIEFjdC4gSW4gYWRkaXRpb24sIHRoZSBsb2NhbCBlY29ub215IGNhbiBiZW5lZml0IGZyb20gcGVvcGxlIHVzaW5nIHRoZWlyIGJlbmVmaXRzIHRvIGVtcGxveSBwZW9wbGUgdG8gcHJvdmlkZSBkb21pY2lsaWFyeSBjYXJlLCBwZXJzb25hbCBhc3Npc3RhbnRzLCBnYXJkZW5pbmcgZXRjLlxcblxcbkFzIHRoZSAyMDE2LTE3IHRhcmdldHMgZm9yIHJlZmVycmFscyB0byB0aGUgQ2FyZXdpc2UgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIHdlcmUgbm90IG1ldCwgd2UgYXJlIG1haW50YWluaW5nIHRoZSAyMDE3LTE4IHRhcmdldHMgZm9yIHRoaXMgbWVhc3VyZS5cXG5cXG4qIDU1IHBlb3BsZSByZWZlcnJlZCB0byB0aGUgQ2FyZXdpc2UgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIHBlciBtb250aCBieSB0aGUgZW5kIG9mIE1hcmNoIDIwMTcgd2l0aCBhbiBpbmNyZW1lbnRhbCBpbmNyZWFzZSB0aHJvdWdob3V0IHRoZSB5ZWFyLlxcbiogLUFnZSBVSyBXZXN0IFN1c3NleCBNb25leSBBZHZpY2UgU2VydmljZSAtIEZvciAyMDE2LiBUYXJnZXQgZm9yIDIwMTctMTggaXMgdG8gbWFpbnRhaW4gNTUwIGluZGl2aWR1YWwgc2Vzc2lvbnMgcGVyIG1vbnRoIHRocm91Z2hvdXQgdGhlIHllYXIuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipNYXJrZXRpbmcgYW5kIFByb21vdGlvbioqXFxuXFxuVGhlIG1hcmtldGluZyBjYW1wYWlnbiBjb21wcmlzZXMgYSB3aWRlIHJhbmdlIG9mIHByb21vdGlvbmFsIGNoYW5uZWxzIGluY2x1ZGluZyBzb2NpYWwgbWVkaWEgYW5kIGRpZ2l0YWwgbWV0aG9kcywgYWxsIG9mIHdoaWNoIGFyZSBzdWJqZWN0IHRvIHJvYnVzdCBtb25pdG9yaW5nIGFuZCBldmFsdWF0aW9uLiBBcyBwYXJ0IG9mIHRoZSAyMDE2LTE3IG1hcmtldGluZyBjYW1wYWlnbiwgQ2FyZXdpc2Ugd2FzIGFnYWluLCBvbmUgb2YgdGhlIG1haW4gc3BvbnNvcnMgZm9yIFdlc3QgU3Vzc2V4IENhcmUgTW9udGggd2hpY2ggdG9vayBwbGFjZSBkdXJpbmcgT2N0b2JlciAyMDE2LiBUaGlzIHdhcyBkZXNpZ25lZCB0byBwcm9tb3RlIHRoZSBkaWZmZXJlbnQgY2FyZSBhbmQgc3VwcG9ydCBvcHRpb25zIGF2YWlsYWJsZSB0byByZXNpZGVudHMgaW4gV2VzdCBTdXNzZXggdXNpbmcgYSB2YXJpZXR5IG9mIG1hcmtldGluZyBjaGFubmVscyBzdWNoIGFzIHJhZGlvIHByb21vdGlvbnMgYW5kIHNvY2lhbCBtZWRpYS4gRHVyaW5nIHRoZSBjYW1wYWlnbiB0aGUgbnVtYmVyIG9mIG5ldyAndW5pcXVlJyB2aXNpdG9ycyB0byB0aGUgQ2FyZXdpc2Ugd2Vic2l0ZSBpbmNyZWFzZWQgZnJvbSBTZXB0ZW1iZXIgdG8gT2N0b2JlciBieSBvdmVyIDIwMyUgYW5kIHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIHdlYiBwYWdlIHdhcyB2aWV3ZWQgaW5jcmVhc2VkIGJ5IDE3NCUgLiBDYXJlIE1vbnRoIGlzIGJlaW5nIHJlcGVhdGVkIGR1cmluZyBPY3RvYmVyIDIwMTcuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNkFGNUUyQjgtMEY1OS00ODQ0LUE4QkItOERDNEMxOUQ4MTczXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZXJlIGlzIGEgZm9jdXMgb24gcHJvbW90aW5nIENhcmV3aXNlIGF0IHRoZSDigJhwb2ludCBvZiBuZWVk4oCZOyBmb3IgZXhhbXBsZSwgaW4gcmVzaWRlbnRpYWwgY2FyZSBob21lcyBhbmQgdG8gZG9taWNpbGlhcnkgY2FyZSBwcm92aWRlcnMsIHRvIGhvc3BpdGFsIGRpc2NoYXJnZSB0ZWFtcywgR1BzIGFuZCBzb2xpY2l0b3JzLCAocGFydGljdWxhcmx5IFNvbGljaXRvcnMgZm9yIHRoZSBFbGRlcmx5KS4gV2UgaGVsZCBzb21lIENhcmV3aXNlIOKAmHN1cmdlcmllc+KAmSBpbiByZXNpZGVudGlhbCBjYXJlIGhvbWVzIGFuZCB3ZSB3aWxsIGJlIGNvbnRpbnVlIHRvIHByb21vdGUgdGhlIG9mZmVyIGFzIHBhcnQgb2YgdGhlIHByb21vdGlvbmFsIGNhbXBhaWduLiBDYXJld2lzZSBhbHNvIGhvc3RlZCBhbiBldmVudCBmb3IgbGF3eWVycywgJ0JlIENhcmV3aXNlIHdpdGggeW91ciBjbGllbnRzJyB3aXRoIENvbnRpbnVpbmcgUHJvZmVzc2lvbmFsIERldmVsb3BtZW50IGFjY3JlZGl0YXRpb24gb24gNXRoIE9jdG9iZXIgMjAxNi4gVGhlIGV2ZW50IGZvY3Vzc2VkIG9uIHByb21vdGluZyB0aGUgYmVuZWZpdHMgZm9yIHNvbGljaXRvcnMgb2YgZXN0YWJsaXNoaW5nIGxpbmtzIHdpdGggdGhlIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBhbmQgaW5jbHVkZWQgaGlnaCBwcm9maWxlIHNwZWFrZXJzIFRpc2ggSGFuaWZpYW4sIEJhcnJpc3RlciBhbmQgZm91bmRlciBvZiB0aGUgU29jaWV0eSBvZiBsYXRlciBMaWZlIEFkdmlzZXJzIChTT0xMQSkgYW5kIFNvbGljaXRvcnMgZm9yIHRoZSBFbGRlcmx5IGFuZCBEYXZlIFNlYWdlciwgRGV2ZWxvcG1lbnQgRGlyZWN0b3IgYXQgU29saWNpdG9ycyBmb3IgSW5kZXBlbmRlbnQgRmluYW5jaWFsIEFkdmljZSAoU0lGQSkuIEJvdGggc3BlYWtlcnMgcHJhaXNlZCB0aGUgQ2FyZXdpc2UgbW9kZWwgYXMgb25lIG5hdGlvbmFsIGdvb2QgcHJhY3RpY2UgYW5kIGhpZ2hsaWdodGVkIHRoZSBpbXBvcnRhbmNlIG9mIGxhd3llcnMgcmVmZXJyaW5nIGNsaWVudHMgdG8gc3BlY2lhbGlzZWQsIGhpZ2hseSBxdWFsaWZpZWQgU09MTEEgYWNjcmVkaXRlZCBmaW5hbmNpYWwgYWR2aXNlcnMgLiBUaGUgZXZlbnQgd2FzIHdlbGwgYXR0ZW5kZWQgYnkgbGF3eWVycyBmcm9tIGFjcm9zcyB0aGUgY291bnR5IGFuZCBkZWxlZ2F0ZSBmZWVkYmFjayBpbmRpY2F0ZWQgdGhhdCB0aGUgZXZlbnQgd2FzIHdlbGwgcmVjZWl2ZWQuIERlbGVnYXRlcyB3ZXJlIGNvbnRhY3RlZCB0byBvZmZlciB0aGVtIG9wcG9ydHVuaXR5IHRvIGVzdGFibGlzaCBwcm9mZXNzaW9uYWwgbGlua3Mgd2l0aCBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgaW4gdGhlaXIgbG9jYWwgYXJlYS4gSW4gYWRkaXRpb24sIGludml0ZWVzIHdobyB3ZXJlIHVuYWJsZSB0byBhdHRlbmQgdGhlIGV2ZW50IHdlcmUgcHJvdmlkZWQgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gZXN0YWJsaXNoIHByb2Zlc3Npb25hbCBsaW5rcyB3aXRoIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBuZWFyZXN0IHRvIHRoZWlyIHByYWN0aWNlLiBUaGUgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIGNvbnRpbnVlIHRvIHZpc2l0IGZpcm1zIG9mIHNvbGljaXRvcnMgb24gcmVxdWVzdCBhbmQgdG8gYnVpbGQgcHJvZmVzc2lvbmFsIHJlbGF0aW9uc2hpcHMgd2l0aCBsYXd5ZXJzL1xcblxcbldlIGNvbnRpbnVlIHRvIGlzc3VlIGludml0ZXMgdG8gY2FyZSBob21lIHByb3ZpZGVycyB0byBob2xkIENhcmV3aXNlICdzdXJnZXJpZXMnIGZvciB0aGVpciBzdGFmZiwgcmVzaWRlbnRzIGFuZCB0aGVpciBmYW1pbGllcy4gVGhlIHRlbXBsYXRlIHJlY29tbWVuZGluZyB0aGF0IG5ldyBjYXJlIGhvbWUgcmVzaWRlbnRzIGFjY2VzcyBnb29kIGZpbmFuY2lhbCBhZHZpY2Ugd2hpY2ggd2FzIGRldmVsb3BlZCBmb3IgaW5jbHVzaW9uIGluIGFkbWlzc2lvbiBwYWNrcywgaGFzIGJlZW4gdXBkYXRlZCB0byByZXNlbWJsZSBtb3JlIG9mIGFuIGluZm9ybWF0aW9uIGZseWVyLiBUaGUgZmx5ZXIgd2FzIGNpcmN1bGF0ZWQgdG8gcHJvdmlkZXJzIGFuZCBpdCBpcyBiZWluZyBzdWdnZXN0ZWQgdGhhdCBleGlzdGluZyByZXNpZGVudHMgYXJlIGFsc28gaW5jbHVkZWQuIFdlc3QgU3Vzc2V4IFBhcnRuZXJzIGluIENhcmUgKHJlcHJlc2VudGF0aXZlIGJvZHkgZm9yIGNhcmUgcHJvdmlkZXJzIGluIFdlc3QgU3Vzc2V4IGFuZCBhIENhcmV3aXNlIHBhcnRuZXIpIGlzIHBsYXlpbmcgYW4gaW5jcmVhc2VkIHJvbGUgaW4gcHJvbW90aW5nIENhcmV3aXNlLlxcblxcbldlIGFsc28gdmlzaXQgbG9jYWwgb3JnYW5pc2F0aW9ucyBhbmQgZ3JvdXBzIHRvIGdpdmUgcHJlc2VudGF0aW9ucyBvbiByZXF1ZXN0IGFuZCB3ZSBzZWVrIG91dCBwcm9tb3Rpb25hbCBhY3Rpdml0aWVzIGFzIHBhcnQgb2YgdGhlIG9uZ29pbmcgbWFya2V0aW5nIGNhbXBhaWduLlxcblxcbioqRkVCUlVBUlkgMjAxOCBGSUdVUkVTKipcXG5cXG4tIC0gLVxcblxcbioqX1JlZmVycmFscyB0byBjYXJlIGZlZXMgc3BlY2lhbGlzdHNfKiogLSAyNS4gVGhlIHRhcmdldCBmb3IgdGhlIG51bWJlciBvZiByZWZlcnJhbHMgdG8gdGhlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBmb3IgRmVicnVhcnkgaXMgNTIuIFRoZSB0YXJnZXQgZm9yIEZlYnJ1YXJ5IDIwMTggaGFzIG5vdCBiZWVuIG1ldC5cXG5cXG5Ib3dldmVyLCAyNSBwZW9wbGUgaGF2ZSByZWNlaXZlZCBzb21lIGxldmVsIG9mIGZpbmFuY2lhbCBhZHZpY2UgZnJvbSB0aGUgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIHJhbmdpbmcgZnJvbSBiYXNpYyB0byBzcGVjaWFsaXN0IGFkdmljZS4gJ0Jhc2ljIGFkdmljZScgY2FuIGludm9sdmUgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIGVuZ2FnaW5nIGluIGNvbnZlcnNhdGlvbnMgd2l0aCBjYWxsZXJzIGZvciBoYWxmIGFuZCBob3VyIG9yIG1vcmUgZHVyaW5nIHdoaWNoIHRoZXkgYXJlIHByb3ZpbmcgYWR2aWNlLlxcblxcbl8qKkFnZSBVSyBXZXN0IFN1c3NleCoqXyAtIFRoZSBudW1iZXIgb2YgaW5kaXZpZHVhbCBzZXNzaW9ucyBoZWxkIGJ5IHRoZSBNb25leSBBZHZpY2UgU2VydmljZSAocGVvcGxlIHJlY2VpdmluZyBhZHZpY2Ugb24gYSBzcGVjaWZpYyBiZW5lZml0KSBmb3IgRmVicnVhcnkgMjAxOCA9IDU3NS4gVGhlIHRhcmdldCBmb3IgRmVicnVhcnkgMjAxOCBpcyA1NTAgYW5kIGl0IGhhcywgdGhlcmVmb3JlIGJlZW4gZXhjZWVkZWQuXFxuXFxuVGhlIHZhbHVlIG9mIGFkZGl0aW9uYWwgYmVuZWZpdHMgYWNjZXNzZWQgZm9yIHBlb3BsZSBkdXJpbmcgZnJvbSBBcHJpbCAtIEZlYnJ1YXJ5IDIwMTggPSDCozIsOTExLDM1My5cXG5cXG4qKkFjdGlvbnMgYmVpbmcgdGFrZW4qKlxcblxcbiogTWFya2V0aW5nIGNhbXBhaWduIGZvciAyMDE3LTE4LiBUbyB0YWtlIGludG8gYWNjb3VudCBhIGZvY3VzIG9uIHRoZSB0cmlhbCBzaXRlcyBmb3IgdGhlIEFkdWx0cycgU2VydmljZXMgbmV3IGFwcHJvYWNoIHRvIGRlbGl2ZXJpbmcgYWR1bHQgc29jaWFsIGNhcmUuXFxuKiBQcmVzZW50YXRpb25zIHRvIGRvbWljaWxpYXJ5IGNhcmUgcHJvdmlkZXIgZm9ydW1cXG4gICogUGxhbm5pbmcgZm9yIGZ1cnRoZXIgY291cG9uIHByb21vdGlvbnNcXG4qIFN1cmdlcmllcy9zZW1pbmFycyBpbiByZXNpZGVudGlhbCBjYXJlIGhvbWVzIG9uIHJlcXVlc3QgZnJvbSBwcm92aWRlcnNcXG4qIFJlbmV3ZWQgZm9jdXMgb24gcHJvbW90aW9ucyB0byByZXNpZGVudGlhbCBhbmQgZG9taWNpbGlhcnkgY2FyZSBob21lIHByb3ZpZGVycyAtIENvbnRyYWN0cyBEZXBhcnRtZW50IHBsYXlpbmcgYSBrZXkgcm9sZS4gV2VzdCBTdXNzZXggUGFydG5lcnMgaW4gQ2FyZSBoYXZlIHVwZGF0ZWQgdGhlaXIgd2Vic2l0ZSB0byBpbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0IENhcmV3aXNlIG9uIHRoZWlyIHdlYnNpdGUuXFxuXFxuKipGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDYXJld2lzZSB2aXNpdDoqKiBbKip3d3cud2VzdHN1c3NleGNvbm5lY3R0b3N1cHBvcnQub3JnL2NhcmV3aXNlKipdWzBdKiosIGNhbGwgMDEyNDMgNjQyMTIxIG9yIGVtYWlsOioqIFsqKnNvY2lhbGNhcmVAd2VzdHN1c3NleC5nb3YudWsqKl1bMV1cXG5cXG5bMF06IGh0dHA6Ly93d3cud2VzdHN1c3NleGNvbm5lY3R0b3N1cHBvcnQub3JnL2NhcmV3aXNlXFxuWzFdOiBtYWlsdG86c29jaWFsY2FyZUB3ZXN0c3Vzc2V4Lmdvdi51a1wifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiVGhlIHBlcmNlbnRhZ2Ugb2YgQWR1bHRzIFNvY2lhbCBDYXJlIGN1c3RvbWVycyB3aG8sIHdoZW4gc3VydmV5ZWQsIGZlbHQgdGhleSBoYWQgY29udHJvbCBvdmVyIHRoZWlyIGRhaWx5IGxpdmVzXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVG8gbWFpbnRhaW4gb3IgaW1wcm92ZSB0aGUgcGVyY2VudGFnZSBvZiBBZHVsdHMgU29jaWFsIENhcmUgY3VzdG9tZXJzIHdobywgd2hlbiBzdXJ2ZXllZCwgZmVsdCB0aGV5IGhhZCBjb250cm9sIG92ZXIgdGhlaXIgZGFpbHkgbGl2ZXMgdG8gODAuMyVcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNi0wMy0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0X3R5cGUiOiJyZWxhdGl2ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6ODAuMywibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJkZDNoLWp5c2QifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxNn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9LFwidHlwZVwiOlwic3RhdGljXCJ9LFwibmFtZVwiOlwidHJhY2tpbmcgdGhlICUgb2YgQWR1bHRzIFNvY2lhbCBDYXJlIGN1c3RvbWVycyB3aG8sIHdoZW4gc3VydmV5ZWQsIGZlbHQgdGhleSBoYWQgY29udHJvbCBvdmVyIHRoZWlyIGRhaWx5IGxpdmVzXCIsXCJ5U2NhbGVcIjp7XCJ1c2VfZGVmYXVsdFwiOmZhbHNlfX0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMDk6NDM6NTIuNjE1WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjIxOjUwLjE3OVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQwOTo0Mzo1Mi42MTVaIiwidGFyZ2V0X3RvbGVyYW5jZSI6NSwiaWQiOiJycGVqLWEyY3QifSwicmVsYXRlZF9tZWFzdXJlcyI6W3sibWV0YWRhdGEiOiIiLCJpZCI6Imo4Ym0teHRuYiJ9LHsibWV0YWRhdGEiOiIiLCJpZCI6Ijg0dGktaWZucCJ9LHsibWV0YWRhdGEiOiIiLCJpZCI6IjJnN20tM25hciJ9XSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xNlQwOTozMzowMy4zOTZaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjE6NTAuMzM5WiIsInZlcnNpb24iOiIyMDE4LTA0LTE2VDA5OjMzOjAzLjM5NloiLCJjcmVhdGVkX2J5IjoiM2Rwdi1qcjhtIn0seyJpZCI6IjJra2otbm5xeiIsIm5hbWUiOiJRdWFsaXR5IG9mIGNhcmUgaW4gaG9tZXMiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YWxpdHkgb2YgQ2FyZSBIb21lcyBhbmQgQ2FyZSByZWNlaXZlZCBhdCBIb21lKipcXG5cXG5UaGUgQ2FyZSBRdWFsaXR5IENvbW1pc3Npb24gKENRQykgaXMgdGhlIGluZGVwZW5kZW50IGluc3BlY3RvciBhbmQgcmVndWxhdG9yIG9mIGhlYWx0aCBhbmQgc29jaWFsIGNhcmUgc2VydmljZXMgaW4gRW5nbGFuZC5cXG5cXG5UaGV5IG1ha2Ugc3VyZSBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBzdWNoIGFzIENhcmUgSG9tZXMgYW5kIENhcmUgYW5kIFN1cHBvcnQgaW4gcGVvcGxlc+KAmSBvd24gaG9tZXMgYXJlIHNhZmUsIGVmZmVjdGl2ZSBhbmQgaGlnaC1xdWFsaXR5LiBUaGUgQ1FDIG1vbml0b3IsIGluc3BlY3QgYW5kIHJlZ3VsYXRlIHNlcnZpY2VzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXkgbWVldCBmdW5kYW1lbnRhbCBzdGFuZGFyZHMgb2YgcXVhbGl0eSBhbmQgc2FmZXR5IGFuZCB0aGV5IHB1Ymxpc2ggd2hhdCB0aGV5IGZpbmQgdG8gaGVscCBwZW9wbGUgbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgdGhlaXIgY2hvaWNlIG9mIGNhcmUuXFxuXFxuVGhlIENRQyBjaGFuZ2VkIHRoZWlyIG1vbml0b3JpbmcgcmVnaW1lIGluIE9jdG9iZXIgMjAxNCB0byBmb2N1cyBvbiA1IGtleSBxdWVzdGlvbnM6XFxuXFxuKiBBcmUgdGhleSBzYWZlP1xcbiogQXJlIHRoZXkgZWZmZWN0aXZlP1xcbiogQXJlIHRoZXkgY2FyaW5nP1xcbiogQXJlIHRoZXkgcmVzcG9uc2l2ZSB0byBwZW9wbGXigJlzIG5lZWRzP1xcbiogQXJlIHRoZXkgd2VsbC1sZWQ/XFxuXFxuSW4gb3JkZXIgdG8gYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyBDUUMgSW5zcGVjdG9ycyB3aWxsIGdhdGhlciBpbmZvcm1hdGlvbiBhbmQgaW50ZWxsaWdlbmNlIGZyb20gYSByYW5nZSBvZiBzb3VyY2VzIGluY2x1ZGluZzogTG9jYWwgQXV0aG9yaXRpZXMsIE5IUyBhbmQgdGhlIENhcmUgUHJvdmlkZXIsIGFuZCB0aGVuIGNhcnJ5IG91dCBhbiBvbi1zaXRlIGluc3BlY3Rpb24uXFxuXFxuT25jZSB0aGUgaW5zcGVjdG9yIGhhcyBjb25zaWRlcmVkIGFsbCBvZiB0aGUgZXZpZGVuY2UgcmVsYXRlZCB0byBlYWNoIHF1ZXN0aW9uIGEganVkZ2VtZW50IGlzIG1hZGUgb24gdGhlIGNvbXBsaWFuY2UgcmF0aW5nIGZvciBlYWNoIHF1ZXN0aW9uIGFuZCBhbiBvdmVyYWxsIHJhdGluZyBmb3IgdGhlIGNhcmUgcHJvdmlkZXIuXFxuXFxuKipUaGVyZSBhcmUgZm91ciByYXRpbmdzIHdoaWNoIHRoZSBDUUMgZ2l2ZSB0byBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzOiBvdXRzdGFuZGluZywgZ29vZCwgcmVxdWlyZXMgaW1wcm92ZW1lbnQgYW5kIGluYWRlcXVhdGUuKipcXG5cXG4qKk91dHN0YW5kaW5nKiogLSBUaGUgc2VydmljZSBpcyBwZXJmb3JtaW5nIGV4Y2VwdGlvbmFsbHkgd2VsbC5cXG5cXG4qKkdvb2QqKiAtIFRoZSBzZXJ2aWNlIGlzIHBlcmZvcm1pbmcgd2VsbCBhbmQgbWVldGluZyBvdXIgZXhwZWN0YXRpb25zLlxcblxcbioqUmVxdWlyZXMgaW1wcm92ZW1lbnQqKiAtIFRoZSBzZXJ2aWNlIGlzbid0IHBlcmZvcm1pbmcgYXMgd2VsbCBhcyBpdCBzaG91bGQgYW5kIHdlIGhhdmUgdG9sZCB0aGUgc2VydmljZSBob3cgaXQgbXVzdCBpbXByb3ZlLlxcblxcbioqSW5hZGVxdWF0ZSoqIC0gVGhlIHNlcnZpY2UgaXMgcGVyZm9ybWluZyBiYWRseSBhbmQgd2UndmUgdGFrZW4gYWN0aW9uIGFnYWluc3QgdGhlIHBlcnNvbiBvciBvcmdhbmlzYXRpb24gdGhhdCBydW5zIGl0LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIFBlcmNlbnRhZ2Ugb2YgQ2FyZSBIb21lcyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbiAoQ1FDKSBkdXJpbmcgMjAxNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkR1cmluZyAyMDE3IENRQyBjb21tZW5jZWQgYSBwdWJsaWMgY29uc3VsdGF0aW9uIHByb2Nlc3MgdG8gc2VlayB2aWV3cyBvbiB0aGVpciBwcm9wb3NhbHMgdG87XFxuXFxu4oCccmVndWxhdGUgcHJpbWFyeSBtZWRpY2FsIHNlcnZpY2VzIGFuZCBhZHVsdCBzb2NpYWwgY2FyZSBzZXJ2aWNlcywgaW1wcm92ZSB0aGUgc3RydWN0dXJlIG9mIHJlZ2lzdHJhdGlvbixhbmQgY2xhcmlmeSB0aGVpciBkZWZpbml0aW9uIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLCBtb25pdG9yLCBpbnNwZWN0IGFuZCByYXRlIG5ldyBtb2RlbHMgb2YgY2FyZSBhbmQgbGFyZ2Ugb3IgY29tcGxleCBwcm92aWRlcnMsIHVzZSB0aGVpciB1bmlxdWUga25vd2xlZGdlIHRvIGVuY291cmFnZSBpbXByb3ZlbWVudHMgaW4gdGhlIHF1YWxpdHkgb2YgY2FyZSBpbiBsb2NhbCBhcmVhcywgY2Fycnkgb3V0IHRoZWlyIHJvbGUgaW4gcmVsYXRpb24gdG8gdGhlIGZpdCBhbmQgcHJvcGVyIHBlcnNvbnMgcmVxdWlyZW1lbnTigJ1cXG5cXG5UaGUgY29uc3VsdGF0aW9ucyBwcm9wb3NlZCBhIG51bWJlciBvZiBjaGFuZ2VzIHRvIHRoZSB3YXkgdGhhdCBjYXJlIHNlcnZpY2VzIGFyZSByZWdpc3RlcmVkIGFuZCBpbnNwZWN0ZWQgYnkgdGhlIENRQzpcXG5cXG4qIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS2V5IExpbmVzIE9mIEVucXVpcnkgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZSBzdWItY3JpdGVyaWEgdW5kZXIgZWFjaCBLTE9FLlxcbiogQ2hhbmdlcyB0byBmcmVxdWVuY3kgb2YgaW5zcGVjdGlvbnMsIGluY2x1ZGluZyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gcmF0aW5ncyBmb3Igc2VydmljZXMgcmF0aW5nIEdvb2Qgb3IgT3V0c3RhbmRpbmcgZnJvbSAyNC1tb250aHMgdG8gMzAtbW9udGhzLlxcbiogQ2hhbmdlcyB0byByZXNwb25zZSB3aGVyZSBzZXJ2aWNlcyBhcmUgcmVwZWF0ZWRseSByYXRlZCBhcyBSZXF1aXJlcyBJbXByb3ZlbWVudFxcbiogUHVibGljYXRpb24gb2YgcmVmcmVzaGVkIGd1aWRhbmNlIGZvciDigJhmaXQgYW5kIHByb3BlcuKAmSBwZXJzb25zIHJlcXVpcmVtZW50cyBpbiByZWxhdGlvbiB0byByZWdpc3RyYXRpb24gdG8gZm9yIFByb3ZpZGVycyBhbmQgaW1wcm92ZWQgaW5mb3JtYXRpb24gc2hhcmluZy5cXG4qIEludHJvZHVjdGlvbiBvZiBhbiBvbmxpbmUgUHJvdmlkZXIgSW5mb3JtYXRpb24gQ29sbGVjdGlvbiB3aGljaCB3aWxsIGFsbG93IGNhcmUgcHJvdmlkZXJzIHRvIHN1Ym1pdCB1cC10by1kYXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWFsaXR5IG9mIHRoZSBzZXJ2aWNlIHRoZXkgcHJvdmlkZSBkaXJlY3RseSB0byB0aGUgQ1FDLlxcblxcbkFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdlcmUgbm90IHBsYW5uZWQgdG8gYmUgaW5zcGVjdGVkIHVuZGVyIHRoZSBuZXcgcmV2aXNlZCBmcmFtZXdvcmsgdW50aWwgTm92ZW1iZXIgMjAxNyBhbmQgdGhlIG1heGltdW0gaW50ZXJ2YWwgYmV0d2VlbiBpbnNwZWN0aW9ucyBmb3Igc2VydmljZXMgcmF0ZWQgR29vZCBhbmQgT3V0c3RhbmRpbmcgaXMgZHVlIHRvIGJlIGluY3JlYXNlZCBmcm9tIDI0IG1vbnRocyB0byAzMCBtb250aHMgZnJvbSBBcHJpbCAyMDE4LCB0aGVyZWZvcmU7IGl0IG1heSBiZSBzb21lIHRpbWUgYmVmb3JlIHRoZSBpbXBhY3Qgb2YgdGhpcyBpcyByZWFsaXNlZCBidXQgYXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgUGVyY2VudGFnZSBvZiBDYXJlIEhvbWVzIHJhdGVkIGFzIEdvb2Qgb3IgT3V0c3RhbmRpbmcgYnkgdGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uIChDUUMpIGR1cmluZyAyMDE2LzE3IGZvbGxvd2VkIGFuIHVwd2FyZCB0cmVuZCBiZXlvbmQgdGhlIHRhcmdldC4gVGhpcyBpcyBwYXJ0bHkgZHVlIHRvIHRoZSBwcmlvcml0aXNhdGlvbiBvZiBpbnNwZWN0aW9ucyBmb2N1c2luZyBvbiB0aG9zZSBQcm92aWRlcnMgd2hvbSB3ZXJlIHJhdGVkIG5vbi1jb21wbGlhbnQgdW5kZXIgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSBhbmQgYWxzbywgcGFydGx5IGR1ZSB0byBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBhbmQgb3RoZXIgY29tbWlzc2lvbmVycyBvZiBzZXJ2aWNlcyBpbmNyZWFzaW5nIHRoZSBzdXBwb3J0IGFuZCBjb2FjaGluZyBvZmZlcmVkIHRvIGNhcmVtYXJrZXRzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgZW5oYW5jZWQgcXVhbGl0eSBvZiBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BdCB0aGUgc3RhcnQgb2YgMjAxNyBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbl/igJxyZWd1bGF0ZSBwcmltYXJ5IG1lZGljYWwgc2VydmljZXMgYW5kIGFkdWx0IHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBpbXByb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgcmVnaXN0cmF0aW9uLGFuZCBjbGFyaWZ5IHRoZWlyIGRlZmluaXRpb24gb2YgcmVnaXN0ZXJlZCBwcm92aWRlcnMsIG1vbml0b3IsIGluc3BlY3QgYW5kIHJhdGUgbmV3IG1vZGVscyBvZiBjYXJlIGFuZCBsYXJnZSBvciBjb21wbGV4IHByb3ZpZGVycywgdXNlIHRoZWlyIHVuaXF1ZSBrbm93bGVkZ2UgdG8gZW5jb3VyYWdlIGltcHJvdmVtZW50cyBpbiB0aGUgcXVhbGl0eSBvZiBjYXJlIGluIGxvY2FsIGFyZWFzLCBjYXJyeSBvdXQgdGhlaXIgcm9sZSBpbiByZWxhdGlvbiB0byB0aGUgZml0IGFuZCBwcm9wZXIgcGVyc29ucyByZXF1aXJlbWVudOKAnV9cXG5cXG5UaGUgZmlyc3QgcGhhc2Ugb2YgdGhlIGNvbnN1bHRhdGlvbiBwcm9wb3NlZCBhIG51bWJlciBvZiBjaGFuZ2Ugc3RvIHRoZSBLZXkgTGluZXMgb2YgRW5xdWlyeSAoS0xPRXMpLCBpbmNsdWRpbmcgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBzZXBhcmF0ZSBLTE9FcyBjdXJyZW50bHkgdXNlZCBmb3IgY29tbXVuaXR5IGFuZCByZXNpZGVudGlhbCBiYXNlZCBzZXJ2aWNlcyBpbnRvIG9uZSBuZXcgZnJhbWV3b3JrLiBUaGVyZSBhcmUgMyBhZGRpdGlvbmFsIGFkdWx0IHNvY2lhbCBjYXJlIEtleSBMaW5lcyBPZiBFbnF1aXJ5ICh0aGF0IHN1cHBvcnQgdGhlIGZpdmUga2V5IHF1ZXN0aW9ucykgd2l0aCBuZXcgcHJvbXB0cyBpbmNsdWRlZCBpbiB0aGUgc3ViLWNyaXRlcmlhIHVuZGVyIGVhY2ggS0xPRS4gQWR1bHQgU29jaWFsIENhcmUgU2VydmljZXMgd2lsbCBub3QgYmUgaW5zcGVjdGVkIHVuZGVyIHRoZSBuZXcgcmV2aXNlZCBmcmFtZXdvcmsgdW50aWwgTm92ZW1iZXIgMjAxNy4gQ1FDIGFyZSBjdXJyZW50bHkgZGV2ZWxvcGluZyB0aGVpciBuZXh0IHBoYXNlIG9mIHJlZ3VsYXRpb24gd2l0aCBjb25zdWx0YXRpb24gMiBkdWUgdG8gY2xvc2UgaW4gQXVndXN0IDIwMTcuIENvbnN1bHRhdGlvbiAzIGlzIGR1ZSB0byB0YWtlIHBsYWNlIGxhdGVyIGluIHRoZSB5ZWFyICgyMDE3LzE4KS4gQXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHBlcmNlbnRhZ2Ugb2YgQ2FyZSBIb21lcyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDUUMgKENhcmUgUXVhbGl0eSBDb21taXNzaW9uKSBkdXJpbmcgMjAxNi8xNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkF0IHRoZSBzdGFydCBvZiAyMDE3IHRoZSBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbuKAnHJlZ3VsYXRlIHByaW1hcnkgbWVkaWNhbCBzZXJ2aWNlcyBhbmQgYWR1bHQgc29jaWFsIGNhcmUgc2VydmljZXMsIGltcHJvdmUgdGhlIHN0cnVjdHVyZSBvZiByZWdpc3RyYXRpb24sIGFuZCBjbGFyaWZ5IHRoZWlyIGRlZmluaXRpb24gb2YgcmVnaXN0ZXJlZCBwcm92aWRlcnMsIG1vbml0b3IsIGluc3BlY3QgYW5kIHJhdGUgbmV3IG1vZGVscyBvZiBjYXJlIGFuZCBsYXJnZSBvciBjb21wbGV4IHByb3ZpZGVycywgdXNlIHRoZWlyIHVuaXF1ZSBrbm93bGVkZ2UgdG8gZW5jb3VyYWdlIGltcHJvdmVtZW50cyBpbiB0aGUgcXVhbGl0eSBvZiBjYXJlIGluIGxvY2FsIGFyZWFzLCBjYXJyeSBvdXQgdGhlaXIgcm9sZSBpbiByZWxhdGlvbiB0byB0aGUgZml0IGFuZCBwcm9wZXIgcGVyc29ucyByZXF1aXJlbWVudOKAnVxcblxcblRoZSBmaXJzdCBwaGFzZSBvZiB0aGUgY29uc3VsdGF0aW9uIHByb3Bvc2VkIGEgbnVtYmVyIG9mIGNoYW5nZXMgdG8gdGhlIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS0xPRXMgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZSBzdWItY3JpdGVyaWEuIEFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdpbGwgbm90IGJlIGluc3BlY3RlZCB1bmRlciB0aGUgbmV3IHJldmlzZWQgZnJhbWV3b3JrIHVudGlsIE5vdmVtYmVyIDIwMTcuIFRoZSBDUUMgYXJlIGN1cnJlbnRseSBkZXZlbG9waW5nIHRoZWlyIG5leHQgcGhhc2Ugb2YgcmVndWxhdGlvbiB3aXRoIGNvbnN1bHRhdGlvbiAyIGR1ZSB0byBjbG9zZSBpbiBBdWd1c3QgMjAxNy4gQ29uc3VsdGF0aW9uIDMgaXMgZHVlIHRvIHRha2UgcGxhY2UgbGF0ZXIgaW4gdGhlIHllYXIgKDIwMTcvMTgpLiBBcyBDUUMgaW1wbGVtZW50IHRoZSBuZXcgaW5zcGVjdGlvbiBmcmFtZXdvcmsgdGhpcyB3aWxsIGJlIGEgY2hhbmdlIGZvciBwcm92aWRlcnMsIGNvbnNlcXVlbnRseSB3ZSBhbnRpY2lwYXRlIHRoZXJlIGJlaW5nIGEgc2xpZ2h0IGRlY3JlYXNlIGluIHRoZSBxdWFsaXR5IHJhdGluZ3MgaW4gdGhlIGxhc3QgdHdvIHF1YXJ0ZXJzIG9mIHRoZSB5ZWFyIChzZXJ2aWNlcyByYXRlZCBHb29kIGFuZCBPdXRzdGFuZGluZykgY29tcGFyZWQgdG8gdGhvc2UgZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkxhdGVzdCBmaWd1cmUgY29udGludWVzIG9uIGFuIHVwd2FyZCB0cmVuZCBzaG93aW5nIHF1YWxpdHkgaW4gY2FyZSBob21lcyBpcyBpbmNyZWFzaW5nLiBUaGlzIGluY3JlYXNlIG1heSBiZSBkdWUgdG8gdGhlIHByaW9yaXRpc2F0aW9uIG9mIGluc3BlY3Rpb25zIGJ5IHRoZSBDUUMsIGFzIHRoZXkgaW1wbGVtZW50ZWQgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSwgaS5lLiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lIGZvY3VzZWQgaW5pdGlhbGx5IG9uIHRob3NlIHByb3ZpZGVycyB3aG9tIHdlcmUgcmF0ZWQgbm9uLWNvbXBsaWFudCB1bmRlciB0aGUgcHJldmlvdXMgaW5zcGVjdGlvbiByZWdpbWUuIEFkZGl0aW9uYWxseSwgZHVyaW5nIHRoZSBwYXN0IHllYXIgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaGF2ZSBpbmNyZWFzZWQgc3VwcG9ydCBvZmZlcmVkIHRvIHRoZSBjYXJlIG1hcmtldHMgYW5kIG9mZmVyZWQgYWR2aWNlIGFuZCBndWlkYW5jZSB0byBjYXJlIHByb3ZpZGVycyB0byBwcm9tb3RlIHRoZSBzdXN0YWluaW5nIG9mIGhpZ2ggcXVhbGl0eSBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BcyB3ZSBtb3ZlIGludG8gdGhlIG5leHQgeWVhciwgYW5kIHRoZSBDUUMgY29tcGxldGUgdGhlaXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIGluc3BlY3Rpb24gcmVnaW1lIG1vdmluZyB0byBmb2N1c2VkIGluc3BlY3Rpb25zLCB3ZSBleHBlY3QgdG8gc2VlIHRoZSBpbmNyZWFzZXMgc2VlbiBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkltcHJvdmUgdGhlIG51bWJlciBvZiBjYXJlIGhvbWUgcHJvdmlkZXJzIHJhdGVkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgYnkgdGhlIENRQyB0byA2MCUgb3IgaGlnaGVyXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6ZmFsc2UsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRvIG1haW50YWluIG9yIGluY3JlYXNlIHRoZSBwZXJjZW50YWdlIG9mIGNhcmUgaG9tZSBwcm92aWRlcnMgcmF0ZWQgZ29vZCBvciBvdXRzdGFuZGluZyB0byA2MCUgb3IgYWJvdmUuXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvNkQwNzFDNDQtODk5QS00NUQwLTg0OTAtMjNBMTVGQUQwODIzXCIsXCJpY29uXCI6XCJidWlsZGluZ1wifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE1LTAzLTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXQiOjYwLCJ0YXJnZXRfdHlwZSI6InJlbGF0aXZlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo2MCwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiI1Z3A5LTltNXMifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwidGFyZ2V0X3R5cGVcIjpcInJlbGF0aXZlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9fSxcInN0YXJ0XCI6XCIyMDE1LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE1LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIHJhdGlvIG9mIGNhcmUgaG9tZSBwcm92aWRlcnMgcmF0ZWQgZ29vZCBvciBvdXRzdGFuZGluZ1wifSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0wM1QxMDozOToxMy4zNjlaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjU6NDUuMzUzWiIsInZlcnNpb24iOiIyMDE4LTA0LTAzVDEwOjM5OjEzLjM2OVoiLCJ0YXJnZXRfdG9sZXJhbmNlIjo4LCJpZCI6IjVuaXgtd2didSJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0wM1QxMDozOToxMy41MDlaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjU6NDUuNDQzWiIsInZlcnNpb24iOiIyMDE4LTA0LTAzVDEwOjM5OjEzLjUwOVoiLCJjcmVhdGVkX2J5IjoiM2Rwdi1qcjhtIn0seyJpZCI6ImF4anAtdmE4biIsIm5hbWUiOiJRdWFsaXR5IG9mIGNhcmUgcmVjZWl2ZWQgYXQgaG9tZSIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhbGl0eSBvZiBDYXJlIEhvbWVzIGFuZCBDYXJlIHJlY2VpdmVkIGF0IEhvbWUqKlxcblxcblRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbiAoQ1FDKSBpcyB0aGUgaW5kZXBlbmRlbnQgaW5zcGVjdG9yIGFuZCByZWd1bGF0b3Igb2YgaGVhbHRoIGFuZCBzb2NpYWwgY2FyZSBzZXJ2aWNlcyBpbiBFbmdsYW5kLlxcblxcblRoZXkgbWFrZSBzdXJlIGhlYWx0aCBhbmQgc29jaWFsIGNhcmUgc2VydmljZXMsIHN1Y2ggYXMgQ2FyZSBIb21lcyBhbmQgQ2FyZSBhbmQgU3VwcG9ydCBpbiBwZW9wbGVz4oCZIG93biBob21lcyBhcmUgc2FmZSwgZWZmZWN0aXZlIGFuZCBoaWdoLXF1YWxpdHkuIFRoZSBDUUMgbW9uaXRvciwgaW5zcGVjdCBhbmQgcmVndWxhdGUgc2VydmljZXMgdG8gbWFrZSBzdXJlIHRoYXQgdGhleSBtZWV0IGZ1bmRhbWVudGFsIHN0YW5kYXJkcyBvZiBxdWFsaXR5IGFuZCBzYWZldHkgYW5kIHRoZXkgcHVibGlzaCB3aGF0IHRoZXkgZmluZCB0byBoZWxwIHBlb3BsZSBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGVpciBjaG9pY2Ugb2YgY2FyZS5cXG5cXG5UaGUgQ1FDIGNoYW5nZWQgdGhlaXIgbW9uaXRvcmluZyByZWdpbWUgaW4gT2N0b2JlciAyMDE0IHRvIGZvY3VzIG9uIDUga2V5IHF1ZXN0aW9uczpcXG5cXG5BcmUgdGhleSBzYWZlP1xcblxcbkFyZSB0aGV5IGVmZmVjdGl2ZT9cXG5cXG5BcmUgdGhleSBjYXJpbmc/XFxuXFxuQXJlIHRoZXkgcmVzcG9uc2l2ZSB0byBwZW9wbGXigJlzIG5lZWRzP1xcblxcbkFyZSB0aGV5IHdlbGwtbGVkP1xcblxcbkluIG9yZGVyIHRvIGFuc3dlciB0aGVzZSBxdWVzdGlvbnMgQ1FDIEluc3BlY3RvcnMgd2lsbCBnYXRoZXIgaW5mb3JtYXRpb24gYW5kIGludGVsbGlnZW5jZSBmcm9tIGEgcmFuZ2Ugb2Ygc291cmNlcyBpbmNsdWRpbmc6IExvY2FsIEF1dGhvcml0aWVzLCBOSFMgYW5kIHRoZSBDYXJlIFByb3ZpZGVyLCBhbmQgdGhlbiBjYXJyeSBvdXQgYW4gb24tc2l0ZSBpbnNwZWN0aW9uLiBPbmNlIHRoZSBpbnNwZWN0b3IgaGFzIGNvbnNpZGVyZWQgYWxsIG9mIHRoZSBldmlkZW5jZSByZWxhdGVkIHRvIGVhY2ggcXVlc3Rpb24gYSBqdWRnZW1lbnQgaXMgbWFkZSBvbiB0aGUgY29tcGxpYW5jZSByYXRpbmcgZm9yIGVhY2ggcXVlc3Rpb24gYW5kIGFuIG92ZXJhbGwgcmF0aW5nIGZvciB0aGUgY2FyZSBwcm92aWRlci5cXG5cXG4qKlRoZXJlIGFyZSBmb3VyIHJhdGluZ3Mgd2hpY2ggdGhlIENRQyBnaXZlIHRvIGhlYWx0aCBhbmQgc29jaWFsIGNhcmUgc2VydmljZXM6IG91dHN0YW5kaW5nLCBnb29kLCByZXF1aXJlcyBpbXByb3ZlbWVudCBhbmQgaW5hZGVxdWF0ZS4qKlRcXG5cXG4qKk91dHN0YW5kaW5nKiogLSBUaGUgc2VydmljZSBpcyBwZXJmb3JtaW5nIGV4Y2VwdGlvbmFsbHkgd2VsbC5cXG5cXG4qKkdvb2QqKiAtIFRoZSBzZXJ2aWNlIGlzIHBlcmZvcm1pbmcgd2VsbCBhbmQgbWVldGluZyBvdXIgZXhwZWN0YXRpb25zLlxcblxcbioqUmVxdWlyZXMgaW1wcm92ZW1lbnQqKiAtIFRoZSBzZXJ2aWNlIGlzbid0IHBlcmZvcm1pbmcgYXMgd2VsbCBhcyBpdCBzaG91bGQgYW5kIHdlIGhhdmUgdG9sZCB0aGUgc2VydmljZSBob3cgaXQgbXVzdCBpbXByb3ZlLlxcblxcbioqSW5hZGVxdWF0ZSoqIC0gVGhlIHNlcnZpY2UgaXMgcGVyZm9ybWluZyBiYWRseSBhbmQgd2UndmUgdGFrZW4gYWN0aW9uIGFnYWluc3QgdGhlIHBlcnNvbiBvciBvcmdhbmlzYXRpb24gdGhhdCBydW5zIGl0LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIFBlcmNlbnRhZ2Ugb2YgQ2FyZSBhdCBIb21lIFByb3ZpZGVycyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbihDUUMpIGR1cmluZyAyMDE3IGZvbGxvd2VkIGFuIHVwd2FyZCB0cmVuZCBiZXlvbmQgdGhlIHRhcmdldC4gVGhpcyBpcyBwYXJ0bHkgZHVlIHRvIHRoZSBwcmlvcml0aXNhdGlvbiBvZmkgbnNwZWN0aW9ucyBmb2N1c2luZyBvbiB0aG9zZSBQcm92aWRlcnMgd2hvbSB3ZXJlIHJhdGVkIG5vbi1jb21wbGlhbnQgdW5kZXIgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSBhbmQgYWxzbywgcGFydGx5IGR1ZSB0byBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBhbmQgb3RoZXIgY29tbWlzc2lvbmVycyBvZiBzZXJ2aWNlcyBpbmNyZWFzaW5nIHRoZSBzdXBwb3J0IGFuZCBjb2FjaGluZyBvZmZlcmVkIHRvIGNhcmUgbWFya2V0cyB0byBwcm9tb3RlIHRoZSBzdXN0YWluaW5nIG9mIGVuaGFuY2VkIHF1YWxpdHkgb2YgY2FyZSBmb3IgcmVzaWRlbnRzIG9mIHRoZSBDb3VudHkuXFxuXFxuRHVyaW5nIDIwMTcgQ1FDIGNvbW1lbmNlZCBhIHB1YmxpYyBjb25zdWx0YXRpb24gcHJvY2VzcyB0byBzZWVrIHZpZXdzIG9uIHRoZWlyIHByb3Bvc2FscyB0bztcXG5cXG7igJxyZWd1bGF0ZSBwcmltYXJ5IG1lZGljYWwgc2VydmljZXMgYW5kIGFkdWx0IHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBpbXByb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgcmVnaXN0cmF0aW9uLGFuZCBjbGFyaWZ5IHRoZWlyIGRlZmluaXRpb24gb2YgcmVnaXN0ZXJlZCBwcm92aWRlcnMsIG1vbml0b3IsIGluc3BlY3QgYW5kIHJhdGUgbmV3IG1vZGVscyBvZiBjYXJlIGFuZCBsYXJnZSBvciBjb21wbGV4IHByb3ZpZGVycywgdXNlIHRoZWlyIHVuaXF1ZSBrbm93bGVkZ2UgdG8gZW5jb3VyYWdlIGltcHJvdmVtZW50cyBpbiB0aGUgcXVhbGl0eSBvZiBjYXJlIGluIGxvY2FsIGFyZWFzLCBjYXJyeSBvdXQgdGhlaXIgcm9sZSBpbiByZWxhdGlvbiB0byB0aGUgZml0IGFuZCBwcm9wZXIgcGVyc29ucyByZXF1aXJlbWVudOKAnVxcblxcblRoZSBjb25zdWx0YXRpb25zIHByb3Bvc2VkIGEgbnVtYmVyIG9mIGNoYW5nZXMgdG8gdGhlIHdheSB0aGF0IGNhcmUgc2VydmljZXMgYXJlIHJlZ2lzdGVyZWQgYW5kIGluc3BlY3RlZCBieSB0aGUgQ1FDOlxcblxcbiogS2V5IExpbmVzIG9mIEVucXVpcnkgKEtMT0VzKSwgaW5jbHVkaW5nIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgc2VwYXJhdGUgS0xPRXMgY3VycmVudGx5IHVzZWQgZm9yIGNvbW11bml0eSBhbmQgcmVzaWRlbnRpYWwgYmFzZWQgc2VydmljZXMgaW50byBvbmUgbmV3IGZyYW1ld29yay4gVGhlcmUgYXJlIDMgYWRkaXRpb25hbCBhZHVsdCBzb2NpYWwgY2FyZSBLZXkgTGluZXMgT2YgRW5xdWlyeSAodGhhdCBzdXBwb3J0IHRoZSBmaXZlIGtleSBxdWVzdGlvbnMpIHdpdGggbmV3IHByb21wdHMgaW5jbHVkZWQgaW4gdGhlIHN1Yi1jcml0ZXJpYSB1bmRlciBlYWNoIEtMT0UuXFxuXFxuKiBDaGFuZ2VzIHRvIGZyZXF1ZW5jeSBvZiBpbnNwZWN0aW9ucywgaW5jbHVkaW5nIGluY3JlYXNpbmcgdGhlIG1heGltdW0gaW50ZXJ2YWwgYmV0d2VlbiByYXRpbmdzIGZvciBzZXJ2aWNlcyByYXRpbmcgR29vZCBvciBPdXRzdGFuZGluZyBmcm9tIDI0LW1vbnRocyB0byAzMC1tb250aHMuXFxuXFxuKiBDaGFuZ2VzIHRvIHJlc3BvbnNlIHdoZXJlIHNlcnZpY2VzIGFyZSByZXBlYXRlZGx5IHJhdGVkIGFzIFJlcXVpcmVzIEltcHJvdmVtZW50XFxuXFxuKiBQdWJsaWNhdGlvbiBvZiByZWZyZXNoZWQgZ3VpZGFuY2UgZm9yIOKAmGZpdCBhbmQgcHJvcGVy4oCZIHBlcnNvbnMgcmVxdWlyZW1lbnRzIGluIHJlbGF0aW9uIHRvIHJlZ2lzdHJhdGlvbiB0byBmb3IgUHJvdmlkZXJzIGFuZCBpbXByb3ZlZCBpbmZvcm1hdGlvbiBzaGFyaW5nLlxcblxcbiogSW50cm9kdWN0aW9uIG9mIGFuIG9ubGluZSBQcm92aWRlciBJbmZvcm1hdGlvbiBDb2xsZWN0aW9uIHdoaWNoIHdpbGwgYWxsb3cgY2FyZSBwcm92aWRlcnMgdG8gc3VibWl0IHVwLXRvLWRhdGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHF1YWxpdHkgb2YgdGhlIHNlcnZpY2UgdGhleSBwcm92aWRlIGRpcmVjdGx5IHRvIHRoZSBDUUMuXFxuXFxuQWR1bHQgU29jaWFsIENhcmUgU2VydmljZXMgd2VyZSBub3QgcGxhbm5lZCB0byBiZSBpbnNwZWN0ZWQgdW5kZXIgdGhlIG5ldyByZXZpc2VkIGZyYW1ld29yayB1bnRpbCBOb3ZlbWJlciAyMDE3IGFuZCB0aGUgbWF4aW11bSBpbnRlcnZhbCBiZXR3ZWVuIGluc3BlY3Rpb25zIGZvciBzZXJ2aWNlcyByYXRlZCBHb29kIGFuZCBPdXRzdGFuZGluZyBpcyBkdWUgdG8gYmUgaW5jcmVhc2VkIGZyb20gMjQgbW9udGhzIHRvIDMwIG1vbnRocyBmcm9tIEFwcmlsIDIwMTgsIHRoZXJlZm9yZTsgaXQgbWF5IGJlIHNvbWUgdGltZSBiZWZvcmUgdGhlIGltcGFjdCBvZiB0aGlzIGlzIHJlYWxpc2VkIGJ1dCBhcyBDUUMgaW1wbGVtZW50IHRoZSBuZXcgaW5zcGVjdGlvbiBmcmFtZXdvcmsgdGhpcyB3aWxsIGJlIGEgY2hhbmdlIGZvciBwcm92aWRlcnMsIGNvbnNlcXVlbnRseSB3ZSBhbnRpY2lwYXRlIHRoZXJlIGJlaW5nIGEgc2xpZ2h0IGRlY3JlYXNlIGluIHRoZSBxdWFsaXR5IHJhdGluZ3MgaW4gdGhlIGxhc3QgMiBxdWFydGVycyBvZiB0aGUgeWVhciAoc2VydmljZXMgcmF0ZWQgR29vZCBhbmQgT3V0c3RhbmRpbmcpIGNvbXBhcmVkIHRvIHRob3NlIGR1cmluZyB0aGUgbGFzdCAxMi1tb250aHMgc3RhYmlsaXNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBQZXJjZW50YWdlIG9mIENhcmUgYXQgSG9tZSBQcm92aWRlcnMgcmF0ZWQgYXMgR29vZCBvciBPdXRzdGFuZGluZyBieSB0aGUgQ2FyZSBRdWFsaXR5IENvbW1pc3Npb24oQ1FDKSBkdXJpbmcgMjAxNi8xNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkF0IHRoZSBzdGFydCBvZiAyMDE3IENRQyBjb21tZW5jZWQgYSBwdWJsaWMgY29uc3VsdGF0aW9uIHByb2Nlc3MgdG8gc2VlayB2aWV3cyBvbiB0aGVpciBwcm9wb3NhbHMgdG87XFxuXFxuwqBf4oCccmVndWxhdGUgcHJpbWFyeSBtZWRpY2FsIHNlcnZpY2VzIGFuZCBhZHVsdCBzb2NpYWwgY2FyZSBzZXJ2aWNlcywgaW1wcm92ZSB0aGUgc3RydWN0dXJlIG9mIHJlZ2lzdHJhdGlvbixhbmQgY2xhcmlmeSB0aGVpciBkZWZpbml0aW9uIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLCBtb25pdG9yLCBpbnNwZWN0IGFuZCByYXRlIG5ldyBtb2RlbHMgb2YgY2FyZSBhbmQgbGFyZ2Ugb3IgY29tcGxleCBwcm92aWRlcnMsIHVzZSB0aGVpciB1bmlxdWUga25vd2xlZGdlIHRvIGVuY291cmFnZSBpbXByb3ZlbWVudHMgaW4gdGhlIHF1YWxpdHkgb2YgY2FyZSBpbiBsb2NhbCBhcmVhcywgY2Fycnkgb3V0IHRoZWlyIHJvbGUgaW4gcmVsYXRpb24gdG8gdGhlIGZpdCBhbmQgcHJvcGVyIHBlcnNvbnMgcmVxdWlyZW1lbnTigJ1fXFxuXFxuVGhlIGZpcnN0IHBoYXNlIG9mIHRoZSBjb25zdWx0YXRpb24gcHJvcG9zZWQgYSBudW1iZXIgb2YgY2hhbmdlcyB0byB0aGUgS2V5IExpbmVzIG9mIEVucXVpcnkgKEtMT0VzKSwgaW5jbHVkaW5nIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgc2VwYXJhdGUgS0xPRXMgY3VycmVudGx5IHVzZWQgZm9yIGNvbW11bml0eSBhbmQgcmVzaWRlbnRpYWwgYmFzZWQgc2VydmljZXMgaW50byBvbmUgbmV3IGZyYW1ld29yay4gVGhlcmUgYXJlIDMgYWRkaXRpb25hbCBhZHVsdCBzb2NpYWwgY2FyZSBLZXkgTGluZXMgT2YgRW5xdWlyeSAodGhhdCBzdXBwb3J0IHRoZSBmaXZlIGtleSBxdWVzdGlvbnMpIHdpdGggbmV3IHByb21wdHMgaW5jbHVkZWQgaW4gdGhlc3ViLWNyaXRlcmlhIHVuZGVyIGVhY2ggS0xPRS4gQWR1bHQgU29jaWFsIENhcmUgU2VydmljZXMgd2lsbCBub3QgYmUgaW5zcGVjdGVkIHVuZGVyIHRoZSBuZXcgcmV2aXNlZCBmcmFtZXdvcmsgdW50aWwgTm92ZW1iZXIgMjAxNy4gQ1FDIGFyZSBjdXJyZW50bHkgZGV2ZWxvcGluZyB0aGVpciBuZXh0IHBoYXNlIG9mIHJlZ3VsYXRpb24gd2l0aCBjb25zdWx0YXRpb24gMiBkdWUgdG8gY2xvc2UgaW4gQXVndXN0IDIwMTcuIENvbnN1bHRhdGlvbiAzIGlzIGR1ZSB0byB0YWtlIHBsYWNlIGxhdGVyIGluIHRoZSB5ZWFyICgyMDE3LzE4KS4gQXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS4gdGhlIGluY3JlYXNlcyBzZWVuIGR1cmluZyB0aGUgbGFzdCAxMi1tb250aHMgc3RhYmlsaXNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgUGVyY2VudGFnZSBvZiBDYXJlIGF0IEhvbWUgUHJvdmlkZXJzIHJhdGVkIGFzIEdvb2Qgb3IgT3V0c3RhbmRpbmcgYnkgdGhlIENRQyBkdXJpbmcgMjAxNi8xNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkF0IHRoZSBzdGFydCBvZiAyMDE3IHRoZSBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbuKAnHJlZ3VsYXRlIHByaW1hcnkgbWVkaWNhbCBzZXJ2aWNlcyBhbmQgYWR1bHQgc29jaWFsIGNhcmUgc2VydmljZXMsIGltcHJvdmUgdGhlIHN0cnVjdHVyZSBvZiByZWdpc3RyYXRpb24sYW5kIGNsYXJpZnkgdGhlaXIgZGVmaW5pdGlvbiBvZiByZWdpc3RlcmVkIHByb3ZpZGVycywgbW9uaXRvciwgaW5zcGVjdCBhbmQgcmF0ZSBuZXcgbW9kZWxzIG9mIGNhcmUgYW5kIGxhcmdlIG9yIGNvbXBsZXggcHJvdmlkZXJzLCB1c2UgdGhlaXIgdW5pcXVlIGtub3dsZWRnZSB0byBlbmNvdXJhZ2UgaW1wcm92ZW1lbnRzIGluIHRoZSBxdWFsaXR5IG9mIGNhcmUgaW4gbG9jYWwgYXJlYXMsIGNhcnJ5IG91dCB0aGVpciByb2xlIGluIHJlbGF0aW9uIHRvIHRoZSBmaXQgYW5kIHByb3BlciBwZXJzb25zIHJlcXVpcmVtZW504oCdXFxuXFxuVGhlIGZpcnN0IHBoYXNlIG9mIHRoZSBjb25zdWx0YXRpb24gcHJvcG9zZWQgYSBudW1iZXIgb2YgY2hhbmdlcyB0byB0aGUgS2V5IExpbmVzIG9mIEVucXVpcnkgKEtMT0VzKSwgaW5jbHVkaW5nIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgc2VwYXJhdGUgS0xPRXMgY3VycmVudGx5IHVzZWQgZm9yIGNvbW11bml0eSBhbmQgcmVzaWRlbnRpYWwgYmFzZWQgc2VydmljZXMgaW50byBvbmUgbmV3IGZyYW1ld29yay4gVGhlcmUgYXJlIDMgYWRkaXRpb25hbCBhZHVsdCBzb2NpYWwgY2FyZSBLTE9FcyAodGhhdCBzdXBwb3J0IHRoZSBmaXZlIGtleSBxdWVzdGlvbnMpIHdpdGggbmV3IHByb21wdHMgaW5jbHVkZWQgaW4gdGhlIHN1Yi1jcml0ZXJpYSB1bmRlciBlYWNoIEtMT0UuIEFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdpbGwgbm90IGJlIGluc3BlY3RlZCB1bmRlciB0aGUgbmV3IHJldmlzZWQgZnJhbWV3b3JrIHVudGlsIE5vdmVtYmVyIDIwMTcuIFRoZSBDUUMgYXJlIGN1cnJlbnRseSBkZXZlbG9waW5nIHRoZWlyIG5leHQgcGhhc2Ugb2YgcmVndWxhdGlvbiB3aXRoIGNvbnN1bHRhdGlvbiAyIGR1ZSB0byBjbG9zZSBpbiBBdWd1c3QgMjAxNy4gQ29uc3VsdGF0aW9uIDMgaXMgZHVlIHRvIHRha2UgcGxhY2UgbGF0ZXIgaW4gdGhlIHllYXIgKDIwMTcvMTgpLiBBcyBDUUMgaW1wbGVtZW50IHRoZSBuZXcgaW5zcGVjdGlvbiBmcmFtZXdvcmsgdGhpcyB3aWxsIGJlIGEgY2hhbmdlIGZvciBwcm92aWRlcnMsIGNvbnNlcXVlbnRseSB3ZSBhbnRpY2lwYXRlIHRoZXJlIGJlaW5nIGEgc2xpZ2h0IGRlY3JlYXNlIGluIHRoZSBxdWFsaXR5IHJhdGluZ3MgaW4gdGhlIGxhc3QgMiBxdWFydGVycyBvZiB0aGUgeWVhciAoc2VydmljZXMgcmF0ZWQgR29vZCBhbmQgT3V0c3RhbmRpbmcpIGNvbXBhcmVkIHRvIHRob3NlIGR1cmluZyB0aGUgbGFzdCAxMi1tb250aHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5MYXRlc3QgZmlndXJlIGNvbnRpbnVlcyBvbiBhbiB1cHdhcmQgdHJlbmQgc2hvd2luZyBxdWFsaXR5IGluIGNhcmUgaG9tZXMgaXMgaW5jcmVhc2luZy4gVGhpcyBpbmNyZWFzZSBtYXkgYmUgZHVlIHRvIHRoZSBwcmlvcml0aXNhdGlvbiBvZiBpbnNwZWN0aW9ucyBieSB0aGUgQ1FDLCBhcyB0aGV5IGltcGxlbWVudGVkIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUsIGkuZS4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSBmb2N1c2VkIGluaXRpYWxseSBvbiB0aG9zZSBwcm92aWRlcnMgd2hvbSB3ZXJlIHJhdGVkIG5vbi1jb21wbGlhbnQgdW5kZXIgdGhlIHByZXZpb3VzIGluc3BlY3Rpb24gcmVnaW1lLiBBZGRpdGlvbmFsbHksIGR1cmluZyB0aGUgcGFzdCB5ZWFyIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGFuZCBvdGhlciBjb21taXNzaW9uZXJzIG9mIHNlcnZpY2VzIGhhdmUgaW5jcmVhc2VkIHN1cHBvcnQgb2ZmZXJlZCB0byB0aGUgY2FyZSBtYXJrZXRzIGFuZCBvZmZlcmVkIGFkdmljZSBhbmQgZ3VpZGFuY2UgdG8gY2FyZSBwcm92aWRlcnMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBoaWdoIHF1YWxpdHkgY2FyZSBmb3IgcmVzaWRlbnRzIG9mIHRoZSBDb3VudHkuIEFzIHdlIG1vdmUgaW50byB0aGUgbmV4dCB5ZWFyLCBhbmQgdGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uIGNvbXBsZXRlIHRoZWlyIGltcGxlbWVudGF0aW9uIG9mIHRoZSBpbnNwZWN0aW9uIHJlZ2ltZSBtb3ZpbmcgdG8gZm9jdXNlZCBpbnNwZWN0aW9ucywgd2UgZXhwZWN0IHRvIHNlZSB0aGUgaW5jcmVhc2VzIHNlZW4gZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocyBzdGFiaWxpc2UuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJUbyBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGhvbWUgY2FyZSBwcm92aWRlcnMgcmF0ZWQgZ29vZCBvciBvdXRzdGFuZGluZyBieSB0aGUgQ1FDIHRvIGJlIDYwJSBvciBoaWdoZXJcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjpmYWxzZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVG8gbWFpbnRhaW4gb3IgaW1wcm92ZSB0aGUgcGVyY2VudGFnZSBvZiBob21lIGNhcmUgcHJvdmlkZXJzIHJhdGVkIGFzIGdvb2Qgb3Igb3V0c3RhbmRpbmcgYnkgdGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uIHRvIDYwJSBvciBhYm92ZVwiLFwiaWNvblwiOlwiaG9tZVwiLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzL0FENzBFRTQxLTczODgtNDVDQy1CMTA0LTg2OTc5RDIwODA3N1wifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE1LTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXRfdHlwZSI6InJlbGF0aXZlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo2MCwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJrZHVtLThzNXQifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSByYXRpbyBvZiBob21lIGNhcmUgcHJvdmlkZXJzIHJhdGVkIGFzIGdvb2Qgb3Igb3V0c3RhbmRpbmcgYnkgdGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uXCJ9In0sInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTAzVDEwOjQwOjE4LjE2NloiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToyNjo0My41ODVaIiwidmVyc2lvbiI6IjIwMTgtMDQtMDNUMTA6NDA6MTguMTY2WiIsInRhcmdldF90b2xlcmFuY2UiOjksImlkIjoia215ZC1ua3UzIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjM4bW4tNXZnZCIsInVwZGF0ZWRfYXQiOiIyMDE4LTA0LTEyVDA5OjQ1OjM1LjQzMVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wMS0yNVQxNToyNjo0My42NjZaIiwidmVyc2lvbiI6IjIwMTgtMDQtMTJUMDk6NDU6MzUuNDMxWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiYWU5OC1wdGdhIiwibmFtZSI6IlJlc2lkZW50aWFsIENhcmUgQWRtaXNzaW9ucyIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoaXMgZ29hbCBtZWFzdXJlcyB0aGUgcmF0ZSBhdCB3aGljaCBwZW9wbGUgb3ZlciB0aGUgYWdlIG9mIDY1IGFyZSBwZXJtYW5lbnRseSBhZG1pdHRlZCBpbnRvIHJlc2lkZW50aWFsIG9yIG51cnNpbmcgYWNjb21tb2RhdGlvbiwgYXMgcGFydCBvZiB0aGUgc3VwcG9ydCBwcm92aWRlZCBieSBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbC4gV2UgYWltIHRvIG1pbmltaXNlIHRoaXMsIGFzIHBhcnQgb2Ygb3VyIGRldGVybWluYXRpb24gdG8gcHJvbW90ZSBpbmRlcGVuZGVuY2UgYW5kIHRvIHN1cHBvcnQgcGVvcGxlIHRvIGxpdmUgaW4gdGhlaXIgb3duIGhvbWVzLiBUaGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyB3aWxsLCBob3dldmVyLCBhbHdheXMgcmVtYWluIHRoZSBwcmltYXJ5IGZvY3VzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuQXMgY2FuIGJlIHNlZW4gZnJvbSBmaWd1cmVzIGJlbG93IHdlIGhhdmUgbm90IGJlZW4gc3VjY2Vzc2Z1bCBpbiBoaXR0aW5nIG91ciByZXNpZGVudGlhbCBhZG1pc3Npb25zIHRhcmdldCBmb3IgdGhlIGxhc3QgNCB5ZWFycywgaG93ZXZlciBvdmVyIHRoZSBsYXN0IDIgeWVhcnMgd2UgaGF2ZSBpbXByb3ZlZCBmcm9tIDY2MCBhZG1pc3Npb25zIHBlciAxMDBrIHBvcHVsYXRpb24gKDE1LzE2KSB0byA2MjIgYWRtaXNzaW9ucyBwZXIgMTAwayBwb3B1bGF0aW9uKDE2LzE3KS5cXG5cXG5BcyB3ZSBtb3ZlIGFsb25nIHRoZSBwcmV2ZW50YXRpdmUgc2VydmljZXMgcm91dGUsIHN0YXJ0IHRoZSBuZXcgb3BlcmF0aW5nIG1vZGVsIGFuZCB1c2UgRDJBIGFuZCBvdGhlciBzZXJ2aWNlcyB0byBwcmV2ZW50IGFkbWlzc2lvbnMgZGlyZWN0IGZyb20gYWN1dGVzIHRoZW4gaXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBpbXByb3ZlZCBwZXJmb3JtYW5jZSB0cmVuZCB3aWxsIGNvbnRpbnVlLlxcblxcbkZvciB0aGUgbGFzdCAyIHllYXJzIG91ciB0YXJnZXQgaGFzIGJlZW4gNTk1IGFkbWlzc2lvbnMgcGVyIDEwMGsgcG9wdWxhdGlvbi4gVGhpcyBpcyBoaWdoZXIgdGhhbiB0aGUgQVNDT0YgU0UgYXZlcmFnZSBpbiAyMDE1LzE2IGJ1dCBsb3dlciB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlLiBCZWFyaW5nIGluIG1pbmQgb3VyIGltcHJvdmluZyBwZXJmb3JtYW5jZSB0cmFqZWN0b3J5IGFuZCB0aGUgYWRkaXRpb25hbCBhY3Rpb25zIGFzIGRlc2NyaWJlZCBhYm92ZSBpdCBpcyBzdWdnZXN0ZWQgdGhhdCB3ZSByZXRhaW4gdGhpcyB0YXJnZXQgZm9yIGF0IGxlYXN0IDIwMTcvMTguXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzRFRjc5ODRELTc4REEtNEVGQy1BNDc5LTQwNjVEQTcwQkNBQ1wifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yMThBM0MxQy0xMzYwLTQwRDItQTIyNi1EQjkzMTUzNTIwNTFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuRnJvbnRsaW5lIHRlYW1zIGNvbnRpbnVlIHRvIG1hbmFnZSB0aGUgZGVtYW5kIGZvciBsb25nIHRlcm0gcGxhY2VtZW50cyB3aXRoIGFuIGluY3JlYXNpbmcgZm9jdXMgb24gc3VwcG9ydGluZyBpbmRpdmlkdWFscyB0byByZW1haW4gaW5kZXBlbmRlbnQgdGhyb3VnaCByZWFibGVtZW50LCBhbmQgYWNjZXNzIHRvIGNvbW11bml0eSBzZXJ2aWNlcy5cXG5cXG4gXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJUbyByZWR1Y2UgdGhlIG51bWJlciBvZiBwZXJtYW5lbnQgYWRtaXNzaW9ucyBvZiBvbGRlciBwZW9wbGUgKGFnZWQgNjUgYW5kIG92ZXIpIHRvIHJlc2lkZW50aWFsIGFuZCBudXJzaW5nIGNhcmUgaG9tZXNcIixcImljb25cIjpcInRleHRcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUbyByZWR1Y2UgdGhlIHBlcmNlbnRhZ2Ugb2YgYXBwcm9wcmlhdGUgYWRtaXNzaW9ucyB0byByZXNpZGVudGlhbCBjYXJlIGluIHBlb3BsZSBhZ2VkIDY1KyBwZXIgMTAwLDAwMCB0byA1OTUuNC5cIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNy0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJwZW9wbGUgYWdlZCA2NSsgcGVyIDEwMCwwMDAiLCJ0YXJnZXQiOjU5NS40LCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo2MTEuNCwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJqc2V6LTU5Y3oifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPCJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxN30sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJyZWR1Y2VcIixcIm1haW50YWluX3R5cGVcIjpcIndpdGhpblwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcIkFwcHJvcHJpYXRlIEFkbWlzc2lvbnMgdG8gUmVzaWRlbnRpYWwgQ2FyZVwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6ZmFsc2UsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwid2l0aGluX3RvbGVyYW5jZVwifSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xOFQxNDowNjoyMy42ODdaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjM6MzYuMjkwWiIsInZlcnNpb24iOiIyMDE4LTA0LTE4VDE0OjA2OjIzLjY4N1oiLCJ0YXJnZXRfdG9sZXJhbmNlIjoxNC42LCJpZCI6InlzdTYtM2NyOCJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xOFQxNDowNjo0NS42MzRaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MjM6MzYuMzc0WiIsInZlcnNpb24iOiIyMDE4LTA0LTE4VDE0OjA2OjQ1LjYzNFoiLCJjcmVhdGVkX2J5IjoiM2Rwdi1qcjhtIn0seyJpZCI6ImM0dGYtejczbSIsIm5hbWUiOiJEZW1lbnRpYSBkaWFnbm9zaXMgcmF0ZSIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRpbWVseSBkaWFnbm9zaXMgb2YgZGVtZW50aWEgaXMgYSBrZXkgcHJpb3JpdHkgZm9yIGJvdGggaGVhbHRoIGFuZCBzb2NpYWwgY2FyZS5cXG5cXG5UaGVzZSByYXRlcyBjb3ZlciB0aGUgTWVtb3J5IEFzc2Vzc21lbnQgU2VydmljZSAoTUFTKSBvbmx5LiBUaHJvdWdoIHRoZSBNQVMgcGVvcGxlIHdpdGggZGVtZW50aWEgYW5kIHRoZWlyIGNhcmVycyBhcmUgYWJsZSB0byBhY2Nlc3Mgc3VwcG9ydCBmcm9tIGRlbWVudGlhIGFkdmlzZXJzIGFuZCBhc3NvY2lhdGVkIHByb2Zlc3Npb25hbHMsIHdobyBjYW4gYWxzbyBsaW5rIHRoZW0gaW50byBzb2NpYWwgZ3JvdXBzLCBjYXJlcnMgc3VwcG9ydCBncm91cHMgYW5kIG9wcG9ydHVuaXRpZXMgdG8gbGVhcm4gYWJvdXQgaG93IHRvIGxpdmUgd2VsbCB3aXRoIGRlbWVudGlhLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKiBDcmF3bGV5IGhhcyByZWNvdmVyZWQgYW5kIGlzIG5vdyBvbiB0YXJnZXQuXFxuKiBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4IHJlbWFpbnMgYWJvdmUgdGFyZ2V0LlxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0VGMTI1NkE2LUY2MzktNDAzNS04M0FBLTZCQjVBOTMxQjlFOVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9EODIyOTlGMC1FNUIwLTQ2MzUtOUQ3NC1FQzM0OTFENzNGNjJcIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy85RjAxM0QwQS01NkUwLTQ3MzQtOEVEQy00OUU3MTYyQ0I1ODBcIn0se1widHlwZVwiOlwiaW1hZ2VcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuUTEgcmVzdWx0cyBzaG93IHRoYXQgb3ZlcmFsbCBkaWFnbm9zaXMgcmF0ZSBpcyBzdGVhZGlseSBpbXByb3ZpbmcgYW5kIG9uIHRyYWNrIHRvIG1lZXQgaXRzIHllYXItZW5kIHRhcmdldCBvZiA2OC4xJS4gSG9yc2hhbSBDQ0cgaGFzIGFscmVhZHkgbWV0IHRoZSB5ZWFyLWVuZCB0YXJnZXQgKDY4LjQ1JSkgYW5kIGNsaW5pY2FsIGRpcmVjdG9ycyBhcmUgZGV2ZWxvcGluZyBhbiBhY3Rpb24gcGxhbiBiYXNlZCBvbiB0aGVpciBsZWFybmluZyBmcm9tIEhvcnNoYW3igJlzIHByb2dyZXNzLCB0byBpbXByb3ZlIHRoZSBkaWFnbm9zZXMgcmF0ZXMgb2YgQ3Jhd2xleSBhbmQgTWlkIFN1c3NleCBDQ0dzLiBUaGUgYWN0aW9uIHBsYW4gYWxzbyBpbmNsdWRlcyBhY3Rpb25zIHRvIGVuc3VyZSBpbXByb3ZlZCBwb3N0IGRpYWdub3N0aWMgc3VwcG9ydCBpbiBwcmltYXJ5IGNhcmUsIHN1cHBvcnRlZCBieSBvdGhlciBwcm92aWRlcnMuICgzcmQgc2VjdG9yIGFuZCBTUEZUKS5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBtZWFzdXJlcyB0aGUgZGlhZ25vc2lzIHJhdGUgb2YgZGVtZW50aWEgaW4gV2VzdCBTdXNzZXggXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTMtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6NjcsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiYnY4Ny12cGo2In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTN9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH19LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIGRpYWdub3NpcyByYXRlIGZvciBkZW1lbnRpYVwifSJ9LCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMlQwOTo0NzowNy45NjRaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6Mjk6MDIuMTA2WiIsInZlcnNpb24iOiIyMDE4LTA0LTEyVDA5OjQ3OjA3Ljk2NFoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoxMCwiaWQiOiJpYmlwLTRwMmcifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiMzhtbi01dmdkIiwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMDk6NDc6MDguMDkxWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjI5OjAyLjE2NVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQwOTo0NzowOC4wOTFaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiI5OXh0LWl0NGciLCJuYW1lIjoiSGVhbHRoeSBMaWZlIEV4cGVjdGFuY3kiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcImhlYXJ0XCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipIZWFsdGh5IExpZmUgRXhwZWN0YW5jeSoqXFxuXFxuQXMgbGlmZSBleHBlY3RhbmN5IGhhcyByaXNlbiwgaXQgaXMgaW1wb3J0YW50IHRvIG1lYXN1cmUgd2hhdCBwcm9wb3J0aW9uIG9mIHRoZXNlIGFkZGl0aW9uYWwgeWVhcnMgb2YgbGlmZSBpcyBiZWluZyBzcGVudCBpbiBnb29kIGhlYWx0aC4gSGVhbHRoeSBMaWZlIEV4cGVjdGFuY3kgZXN0aW1hdGVzIHRoaXMgYW5kIHRoZSBtZWFzdXJlIHVuZGVybGluZXMgdGhlIGltcG9ydGFuY2Ugb2Ygd2VsbGJlaW5nIGFuZCBsaWZlc3R5bGUgc2VydmljZXMuIFRoZXNlIHNlcnZpY2VzLCBjb21taXNzaW9uZWQgZm9yIHRoZSBXZXN0IFN1c3NleCBwb3B1bGF0aW9uLCBpbmNsdWRlOiBoZWFsdGggY2hlY2tzIGZvciB0aGUgZ2VuZXJhbCBwb3B1bGF0aW9uIG9mIGFkdWx0cyBhZ2VkIDQwIHRvIDc0LCBhbmQgYWR1bHRzIHdpdGggbGVhcm5pbmcgZGlzYWJpbGl0eTsgc2VydmljZXMgdG8gbWFpbnRhaW4gdGhlIGhlYWx0aCBvZiBjYXJlcnM7IGFsY29ob2wgcHJldmVudGlvbiBhbmQgZWFybHkgaWRlbnRpZmljYXRpb24gb2Ygcmlzazsgc21va2luZyBjZXNzYXRpb24gc2VydmljZXMgZm9yIHByZWduYW50IHdvbWVuIGFuZCBvdGhlciBhZHVsdHM7IGhlYWx0aHkgd2VpZ2h0IHNlcnZpY2VzOyBoYXJtIHJlZHVjdGlvbiBhcHByb2FjaGVzIGZvciBzdWJzdGFuY2UgbWlzdXNlLCBhbmQgZW1vdGlvbmFsIHdlbGxiZWluZyBwcm9ncmFtbWVzLiBUaGVzZSBzZXJ2aWNlcyBoYXZlIHRoZWlyIG93biBLUElzIGFuZCBhY3Rpb24gcGxhbnMsIGFuZCBtYW55IGFyZSBrZXkgdG8gcmVkdWNpbmcgdGhlIHJpc2tzIG9mIGRldmVsb3BpbmcgY2FyZGlvdmFzY3VsYXIgZGlzZWFzZSBhbmQgZGlhYmV0ZXMuXFxuXFxuSGVhbHRoeSBsaWZlIGV4cGVjdGFuY3kgaXMgaW5mbHVlbmNlZCBieSBhIHZhc3QgcmFuZ2UsIGFuZCBjb21wbGV4IGludGVyYWN0aW9uLCBvZiBmYWN0b3JzIHJ1bm5pbmcgdGhyb3VnaCBlYWNoIGluZGl2aWR1YWwncyBsaWZlLiBUaGVzZSBpbmNsdWRlOiBtYXRlcm5hbCBoZWFsdGggYW5kIHdlbGxiZWluZywgcGFyZW50YWwgcmVsYXRpb25zaGlwcyBhbmQgaW5mbHVlbmNlcyBpbiB0aGUgZWFybHkgeWVhcnMgb2YgbGlmZSwgaW5jbHVkaW5nIGJyZWFzdGZlZWRpbmcsIGRpZXQgYW5kIHBoeXNpY2FsIGFjdGl2aXR5OyBhY2Nlc3MgdG8gaGVhbHRoIGFuZCBvdGhlciBzZXJ2aWNlcywgYW5kIHdpZGVyIGluZmx1ZW5jZXMgc3VjaCBhcyBpbmNvbWUsIGVkdWNhdGlvbiwgc2tpbGxzIGFuZCBlbXBsb3ltZW50LiBUaGVyZWZvcmUgdGhpcyBtZWFzdXJlIGlzIGxpbmtlZCB0byBvdGhlciBtZWFzdXJlcyBpbiB0aGUgRnV0dXJlIFdlc3QgU3Vzc2V4IFBsYW4uXFxuXFxuVGhlIGRhdGEgZm9yIHRoaXMgbWVhc3VyZSBpcyBzb3VyY2VkIGZyb20gdGhlIE9OUyBzdGF0aXN0aWNhbCByZWxlYXNlIG9uIEhlYWx0aHkgTGlmZSBFeHBlY3RhbmN5IGF0IEJpcnRoIGJ5IFVwcGVyIFRpZXIgQXV0aG9yaWl0ZXMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gWWVhciBlbmQgMjAxNyoqICoqVXBkYXRlKipcXG5cXG5BcyBhbnRpY2lwYXRlZCBXZXN0IFN1c3NleCBmaWd1cmVzIGFyZSBiZXR0ZXIgdGhhbiB0aGUgRW5nbGFuZCBhdmVyYWdlIGFuZCB0aGlzIGlzIGV4cGVjdGVkIGR1ZSB0byB0aGUgY291bnR54oCZcyB0b3RhbCBhYm92ZSBhdmVyYWdlIGxldmVsIG9mIGFmZmx1ZW5jZS4gV2Ugc2V0IHRoZSB0YXJnZXQgdG8gaW1wcm92ZSBhbmQgYWNoaWV2ZSBhIGJlbmNoIG1hcmsgb2YgQW1iZXIgb3IgR3JlZW4gd2hlbiBXZXN0IFN1c3NleCBpcyBjb21wYXJlZCB0byB0aGUgYXZlcmFnZSBzY29yZSBmb3IgdGhlIFNvdXRoIEVhc3Qgb2YgRW5nbGFuZC4gVGhlIGFkZGl0aW9uIG9mIG5ldyBkYXRhIHBvaW50cyB0byB0aGUgUHVibGljIEhlYWx0aCBPdXRjb21lcyBGcmFtZXdvcmsgc2hvdyB0aGVyZSBpcyBubyBkaXNjZXJuaWJsZSB0cmVuZCBpbiBoZWFsdGh5IGxpZmUgZXhwZWN0YW5jeSBmb3IgdGhlIFNvdXRoIEVhc3Qgb2YgRW5nbGFuZCwgd2l0aCB0aGUgdmFsdWUgcmlzaW5nIGJldHdlZW4gMjAxMy8gMTQgYW5kIDIwMTQvMTUsIGFuZCB0aGVuIGZhbGxpbmcgYWdhaW4gaW4gMjAxNS8xNi4gVGhlIEhlYWx0aCBGb3VuZGF0aW9uLCBpbiBpdHMgMjAxNyBwdWJsaWNhdGlvbiBIZWFsdGh5IExpdmVzIGZvciBQZW9wbGUgaW4gdGhlIFVLIHVzZXMgYW4gYWRhcHRlZCB2ZXJzaW9uIG9mIERhaGxncmVuIGFuZCBXaGl0ZWhlYWTigJlzICgxOTkxKSBtb2RlbCB0byBpbGx1c3RyYXRlIHRoZSByYW5nZSBvZiBpbmZsdWVuY2VycyBvbiBvdXIgd2VsbGJlaW5nIGFuZCBoZWFsdGguIEZpZ3VyZSAxIChyaWdodCkgLlRoZSBmYWN0b3JzIHRoYXQgaW5mbHVlbmNlIGFuIGluZGl2aWR1YWzigJlzIGhlYWx0aCBhbmQgd2VsbGJlaW5nLiBBZGFwdGVkIGZyb20gRGFobGdyZW4gRyxXaGl0ZWhlYWQgTS4gUG9saWNpZXMgYW5kIFN0cmF0ZWdpZXMgdG8gUHJvbW90ZSBTb2NpYWwgRXF1aXR5IGluIEhlYWx0aC5Td2VkZW46IEluc3RpdHV0ZSBmb3IgRnV0dXJlcyBTdHVkaWVzOyAxOTkxLiBIZWFsdGh5IGxpZmUgZXhwZWN0YW5jeSBpcyBhIGNvbnNlcXVlbmNlIG9mIG11bHRpcGxlLCBjb21wbGV4IGludGVyYWN0aW5nIGZhY3RvcnMsIG9ubHkgc29tZSBvZiB3aGljaCBhcmUgd2l0aGluIHRoZSBkaXJlY3QgY29udHJvbCBvZiB0aGUgQ291bnR5IENvdW5jaWwuIE1hbnkgb2YgdGhlIGZhY3RvcnMgY29udHJpYnV0aW5nIHRvIHRoaXMgb3V0Y29tZSBoYXZlIGJlZW4gYWN0aW5nIG92ZXIgbG9uZyB0ZXJtIHRyZW5kcyAoZm9yIGRlY2FkZXMgb3IgZ2VuZXJhdGlvbnMpLiBUaGVyZSBhcmUgaW5jcmVhc2luZ2x5IHN1Z2dlc3Rpb25zIHRoYXQgYSBjb21wbGV4IHN5c3RlbSB3aWRlIG1ldGhvZCBjb25zaWRlcmluZyBzb2NpYWwgZGV0ZXJtaW5hbnRzIGFuZCBwb3RlbnRpYWxseSBhIOKAnGhlYWx0aCBpbiBhbGwgcG9saWNpZXMg4oCcIGFwcHJvYWNoLCBzaG91bGQgYmUgY29uc2lkZXJlZCBpbiB0aGUgZnV0dXJlIHRvIGRldGVybWluZSB3aGVyZSBsb2NhbCByZXNvdXJjZXMgYXJlIGZvY3VzZWQuXFxuXFxuVGhlIGdyZWF0ZXN0IGluZmx1ZW5jZXMgb24gb3VyIHdlbGxiZWluZyBhbmQgaGVhbHRoIGFyZSBmYWN0b3JzIHN1Y2ggYXMgZWR1Y2F0aW9uIGFuZCBlbXBsb3ltZW50LCBob3VzaW5nIGFuZCB0aGUgZXh0ZW50IHRvIHdoaWNoIHRoZSBjb21tdW5pdHkgZmFjaWxpdGF0ZXMgaGVhbHRoeSBoYWJpdHMgYW5kIHNvY2lhbCBjb25uZWN0aW9uLiBXaGlsZSBoZWFsdGggYmVoYXZpb3VycyBoYXZlIGEgYmlnIGRpcmVjdCBpbXBhY3Qgb24gaGVhbHRoOyBzb2Npby0gZWNvbm9taWMgYW5kIG90aGVyIGZhY3RvcnMgaGF2ZSBhIGJpZyBpbXBhY3Qgb24gaGVhbHRoIGJlaGF2aW91cnMuIChMR0EsIFNlcHRlbWJlciAyMDE2LSBIZWFsdGggaW4gQWxsIFBvbGljaWVzKS4gRm9yIGV4YW1wbGUgb2Jlc2l0eSBpcyBhc3NvY2lhdGVkIHdpdGggbG93ZXIgZWR1Y2F0aW9uYWwgYXR0YWlubWVudCwgd2hpY2ggaW4gdHVybiBpcyBsaW5rZWQgdG8gaW5lcXVhbGl0eSBhbmQgZGVwcml2YXRpb24uIE1vc3Qgb2YgdGhlIGRldGVybWluYW50cyBvZiBoZWFsdGggaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggaGVhbHRoIHNlcnZpY2VzIGFuZCBoYXZlIGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCBicm9hZGVyIHB1YmxpYyBzZXJ2aWNlcywgdGhlIGVudmlyb25tZW50cyBpbiB3aGljaCB3ZSBsaXZlLCBhbmQgcGVvcGxl4oCZcyBvcHBvcnR1bml0aWVzIHRvIGxlYWQgaGVhbHRoeSBsaXZlcy4gKEVpc2Vuc3RhZHQgTiwgc3BlYWtpbmcgaW46IFRoZSBIZWFsdGggRm91bmRhdGlvbi4gSGVhbHRoaWVyIGxpdmVzOiBhIGxpc3RlbmluZyBleGVyY2lzZS4gW1ZpZGVvXSAyMDE2LiBBdmFpbGFibGUgZnJvbTogW2h0dHA6Ly93d3cuaGVhbHRoLm9yZy51ay9oZWFsdGhpZXItbGl2ZXMtbGlzdGVuaW5nLWV4ZXJjaXNlXVswXSBBY2Nlc3MgdG8gaGVhbHRoIGNhcmUgYWNjb3VudHMgZm9yIGFzIGxpdHRsZSBhcyAxMCUgb2YgYSBwb3B1bGF0aW9u4oCZcyBoZWFsdGggYW5kIHdlbGxiZWluZy4gV2hpbHN0IHRoZSBxdWFsaXR5IG9mIHRoZSBoZWFsdGhjYXJlIHN5c3RlbSByZW1haW5zIGltcG9ydGFudCwgYnkgaXRzZWxmLCBhIHNhZmUgYW5kIGVmZmVjdGl2ZSBoZWFsdGggc2VydmljZSwgd2lsbCBub3QgaW1wcm92ZSB0aGUgaGVhbHRoIG9mIHBlb3BsZSBpbiB0aGUgVUsuIElmIHRoZSBjYXVzZXMgb2YgaWxsIGhlYWx0aCBhcmUgc29jaWFsLCBlY29ub21pYyBhbmQgZW52aXJvbm1lbnRhbCB0aGVuIHRoZSBzb2x1dGlvbnMgbmVlZCB0byBiZSB0b28uIFRoZXJlIGlzIG5vdCBhIHNpbmdsZSBzZWN0b3IgdGhhdCB3aWxsIGhhdmUgdGhlcmUgc291cmNlIHRvIGFkZHJlc3MgdGhlIGNvbXBsZXhpdHkuXFxuXFxuVGhlIEhlYWx0aCBpbiBhbGwgUG9saWNpZXMgYXBwcm9hY2ggcmVjb2duaXNlcyB0aGF0IG91ciBncmVhdGVzdCBoZWFsdGggY2hhbGxlbmdlcywgdGhvc2UgdGhhdCBpbXBhY3Qgb24gbGlmZSBleHBlY3RhbmN5LCBhcmUgaGlnaGx5IGNvbXBsZXggYW5kIHRoYXQgYSBjb2xsYWJvcmF0aXZlIGFwcHJvYWNoIHRvIGRlY2lzaW9uLW1ha2luZyBhY3Jvc3MgYWxsIHNlY3RvcnMgYW5kIHBvbGljeSBhcmVhcyBhcmUgbmVlZGVkLiDigJxUaGUgY2F1c2VzIG9mIHRoZSBjYXVzZXPigJ0gaXMgaG93IHRoZSBzb2NpYWwgZGV0ZXJtaW5hbnRzIG9mIGhlYWx0aCBhcmUgcmVmZXJyZWQgdG8sYW5kIHRoZXNlIHNob3VsZCBiZSB0aGUgbWFpbiBmb2N1cyBvZiBhbnkgc3RyYXRlZ3kgdG8gaW1wcm92ZSBsaWZlIGV4cGVjdGFuY3ksaGVhbHRoIGFuZCBoZWFsdGggaW5lcXVhbGl0aWVzLiAoTWFybW90LCBjaXRlZCBpbiBMR0EgMjAxNikgV2VzdCBTdXNzZXggaGFzIGluY3JlYXNpbmcgcmVjb2duaXNlZCB0aGUgaW1wb3J0YW5jZSBvZiBhZGRyZXNzaW5n4oCcdGhlIGNhdXNlcyBvZiB0aGUgY2F1c2Vz4oCdIHdpdGggc29tZSBvZiBpdHMgc2VydmljZXMgYW5kIHRoZSBjYXNlIHN0dWR5IGJlbG93IGZyb20gdGhlIFByZXNjcmlwdGlvbiBQbHVzIHByb2plY3QgaW4gQ3Jhd2xleSBpcyBhbiBleGFtcGxlIG9mIHRoaXMuIE1ycyBYIGlzIDc2LiBIZXIgaHVzYmFuZCBwYXNzZWQgYXdheSA5IHllYXJzIGFnbyBhbmQgc2hlIGhhcyBhbHNvIOKAmGxvc3TigJkgZm91ciBvZiBoZXIgZnJpZW5kcyBvdmVyIHRoZSBsYXN0IDEyIG1vbnRocy4gU2hlIHNlZXMgaGVyIGRhdWdodGVyIG9uY2UgYSB3ZWVrLiBNcnMgWCBzdGlsbCBkcml2ZXMgYW5kIHRyaWVzIHRvIGdldCBvdXQgdHdpY2UgYSB3ZWVrIGFzIHNoZSBlbmpveXMgZ29vZCBjb21wYW55IGFuZCBjaGF0dGluZy4gU2hlIGlzIGhvd2V2ZXIgdmVyeSBsb25lbHkuIE1ycyBYIGFuZCBoZXIgaHVzYmFuZCB2aXNpdGVkIFNvdXRoIEFmcmljYSBmb3Igb3ZlciAyMCB5ZWFycyBhbmQgaGFzIHZlcnkgZm9uZCBtZW1vcmllcyBvZiB0cmF2ZWxsaW5nIGFuZCBzcGVuZGluZyB0aW1lIHdpdGggaGVyIGh1c2JhbmQgYW5kIGZyaWVuZHMuIFNpbmNlIGhlciBmcmllbmRzIGhhdmUgcGFzc2VkIGF3YXksIE1ycyBYIGhhcyBiZWNvbWUgbW9yZSBhbnhpb3VzIGFib3V0IGdvaW5nIG91dCBhbmQgbWVldGluZyBuZXcgcGVvcGxlLiBTaGUgYWdyZWVkIHRvIHRyeSBvdXQgQWdlIFVLIG9uIGEgVHVlc2RheS4gTXJzIFogaXMgODMgYW5kIGhhcyBhIGZldyBtZWRpY2FsIGNvbmRpdGlvbnMuIFNoZSB1c2VkIHRvIHZvbHVudGVlciB3aXRoIE1lYWxzIE9uIFdoZWVscyBhbmQgYXMgYW4gZXNjb3J0IG9uIGEgc2Nob29sIGJ1cyBhc3Npc3RpbmcgZGlzYWJsZWQgY2hpbGRyZW4uIE1ycyBaIGhhcyBiZWNvbWUgZXZlcnkgYW54aW91cyBhYm91dCBsZWF2aW5nIGhlciBob3VzZSBhbmQgaGFzIGNvbW1lbnRlZCB0aGF0IOKAmGl0IGhhcHBlbmVkIGp1c3QgbGlrZSB0aGF04oCZIOKApiB0aGVyZSB3YXMgbm8gdHJpZ2dlci4gU2hlIG5ldmVyIGpvaW5lZCBhbnkgY2x1YnMgaW4gdGhlIHBhc3QgYW5kIGhlciBhbnhpZXR5IGhhcyBnb3R0ZW4gc28gYmFkLCB0aGF0IHNoZSBldmVuIGZlZWxzIHVuY29tZm9ydGFibGUgZ29pbmcgdXAgdG8gdGhlIGxvY2FsIHNob3AgYW5kIHRvIGhlciBzb27igJlzIGhvdXNlIGZvciBkaW5uZXIuIE1ycyBa4oCZcyBkYXVnaHRlci1pbi1sYXcgY29uZmlybWVkIHRoaXMgd2l0aCB0aGUgQ29vcmRpbmF0b3IgYW5kIGFjdHVhbGx5IHdpc2hlZCBoZXIgbHVjayBpbiBnZXR0aW5nIE1ycyBaIHRvIHBhcnRpY2lwYXRlLiBUaGUgQ29vcmRpbmF0b3IgYXJyYW5nZWQgdG8gY29sbGVjdCBNcnMgWCBhbmQgTXJzIFogdG8gYXR0ZW5kIHRoZSBUdWVzZGF5IHNlc3Npb24gYXQgQWdlIFVLLiBCb3RoIHdlcmUgbmVydm91cyBhbmQgaGFkIHRvIGxpbmsgYXJtcyB0byBlbnRlciB0aGUgbWFpbiBoYWxsLiBUaGV5IHdlcmUgbWFkZSB0byBmZWVsIHZlcnkgd2VsY29tZSBhbmQgaGF2ZSBkZWNpZGVkIHRvIGdvIGJhY2suIFRoZSBDb29yZGluYXRvciB3YXMgZ2l2ZW4gcGVybWlzc2lvbiB0byBzaGFyZSB0aGUgY29udGFjdCBkZXRhaWxzIG9mIGJvdGggYW5kIG5vdyBNcnMgWCB3aWxsIGJlIGNvbGxlY3RpbmcgTXJzIFogdG8gZ28gYWxvbmcgdG8gdGhlIFR1ZXNkYXkgc2Vzc2lvbi5cXG5cXG5bMF06IGh0dHA6Ly93d3cuaGVhbHRoLm9yZy51ay9oZWFsdGhpZXItbGl2ZXMtbGlzdGVuaW5nLWV4ZXJjaXNlXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiAgKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE2KipcXG5cXG4gXFxuXFxuSGVhbHRoLXJlbGF0ZWQgcXVhbGl0eSBvZiBsaWZlIOKAk0hlYWx0aHkgTGlmZSBFeHBlY3RhbmN5IC8gUXVhbGl0eSBvZiBMaWZlIG9mIE9sZGVyIFBlb3BsZSBUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgbW9uaXRvcmluZyBhbm51YWwgdXBkYXRlcyB0byB0aGUgR1AgcGF0aWVudCBzdXJ2ZXkgaXRlbSBhYm91dCB0aGUgaGVhbHRoIG9mIHBlb3BsZSBhZ2VkIDY1IGFuZCBvdmVyLiAoUGxlYXNlIG5vdGUgdGhhdCB0aGUgZmlndXJlcyBmb3IgV2VzdCBTdXNzZXggYXQgYW55IG9uZSB0aW1lIG1heSBpbmNsdWRlIGEgc21hbGwgcGVyY2VudGFnZSBvZiBwZW9wbGUgbGl2aW5nIGluIG90aGVyIGNvdW50aWVzIHRoYXQgYm9yZGVyIFdlc3QgU3Vzc2V4KS4gVGhlIEhlYWx0aCBSZWxhdGVkIFF1YWxpdHkgb2YgTGlmZSAoSFJRTCkgR1AgUGF0aWVudOKAmXMgU3VydmV5IHF1ZXN0aW9uIGFza3MgcGVvcGxlIHRvIGRlc2NyaWJlIHRoZWlyIGhlYWx0aCBzdGF0dXMgYWdhaW5zdCBmaXZlIGFyZWFzOiBNb2JpbGl0eSwgU2VsZi1jYXJlLCBBYmlsaXR5IHRvIGRvIHVzdWFsIGFjdGl2aXRpZXMsIFBhaW4gL2Rpc2NvbWZvcnQsIEFueGlldHkgLyBkZXByZXNzaW9uLiBUaGlzIGluZGljYXRvciBoYXMgYmVlbiB1cGRhdGVkIG9uIHRoZSBQdWJsaWMgSGVhbHRoIE91dGNvbWVzIEZyYW1ld29yayAoaW5kaWNhdG9yIDQuMTMpLCB0aGUgbGF0ZXN0IGRhdGEgYXJlOiBUaGUgdmFsdWUgZm9yIFdlc3QgU3Vzc2V4IGhhcyByZWR1Y2VkIGZyb20gMC43NiBpbiAyMDEyLzEzIHRvIDAuNzUxIGluIDIwMTMvMTQuIFRoZSB2YWx1ZSBmb3IgdGhlIFNvdXRoIEVhc3QgcmVtYWluZWQgY29uc3RhbnQgYXQgMC43NTUuIFRoZSBXZXN0IFN1c3NleCB2YWx1ZSBpcyBub3Qgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgZnJvbSB0aGUgU291dGggRWFzdCB2YWx1ZSwgYW5kIHNvIHJlbWFpbnMgYW1iZXIuIEhvd2V2ZXIsIHRoZSBmaWd1cmUgaXMgYmV0dGVyIHRoYW4gdGhlIHNjb3JlIGZvciBFbmdsYW5kLCAwLjcyNi5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiICAqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuIFxcblxcbkhlYWx0aC1yZWxhdGVkIHF1YWxpdHkgb2YgbGlmZSDigJMgSGVhbHRoeSBMaWZlIEV4cGVjdGFuY3kgLyBRdWFsaXR5IG9mIExpZmUgb2YgT2xkZXIgUGVvcGxlIFRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSBtb25pdG9yaW5nIGFubnVhbCB1cGRhdGVzIHRvIHRoZSBHUCBwYXRpZW50IHN1cnZleSBpdGVtIGFib3V0IHRoZSBoZWFsdGggb2YgcGVvcGxlIGFnZWQgNjUgYW5kIG92ZXIuIChQbGVhc2Ugbm90ZSB0aGF0IHRoZSBmaWd1cmVzIGZvciBXZXN0IFN1c3NleCBhdCBhbnkgb25lIHRpbWUgbWF5IGluY2x1ZGUgYSBzbWFsbCBwZXJjZW50YWdlIG9mIHBlb3BsZSBsaXZpbmcgaW4gb3RoZXIgY291bnRpZXMgdGhhdCBib3JkZXIgV2VzdCBTdXNzZXgpLiBUaGlzIGdvYWwgaXMgZXhwZWN0ZWQgdG8gYmUgdXBkYXRlZCBpbiBEZWNlbWJlciAyMDE2LiBPTlMgaGF2ZSB5ZXQgdG8gcHJvdmlkZSBhIGRhdGUgZm9yIHRoZSByZWxlYXNlIG9mIGFueSBuZXcgZGF0YS4gVGhlIGxhdGVzdCBkYXRhIHJlbGF0ZXMgdG8gMjAxMi8xMy4gUGVyZm9ybWFuY2UgYWdhaW5zdCB0aGUgdGFyZ2V0IGlzIGN1cnJlbnRseSBBbWJlciAoc2ltaWxhciB0byB0aGUgU291dGggRWFzdCBhdmVyYWdlKS5cXG5cXG5cIn1dLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzLzZBREJERjk3LUM5RjAtNEVEOS04MTJFLUY3OTJEOUNGRUUxMFwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDEyLTAxLTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6InNjb3JlIiwidGFyZ2V0IjowLjc2LCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6InNzangtYmVmdCJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxMn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fX0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTh9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxOH19LFwic3RhcnRcIjpcIjIwMTgtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTgtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJoZWFsdGh5IGxpZmUgZXhwZWN0YW5jeSBcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDMtMTNUMTU6MDE6MDguMjE4WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjMwOjM5Ljc5NVoiLCJ2ZXJzaW9uIjoiMjAxOC0wMy0xM1QxNTowMTowOC4yMThaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MC43LCJpZCI6InJid2ctY2R0eiJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xMlQwOTo0ODowMS40ODRaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MzA6MzkuODU5WiIsInZlcnNpb24iOiIyMDE4LTA0LTEyVDA5OjQ4OjAxLjQ4NFoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6IjdyZzktcmR6aiIsIm5hbWUiOiJOSFMgSGVhbHRoIENoZWNrcyBPdXRjb21lcyIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipUYXJnZXQqKlxcblxcbldlIGJlbGlldmUgcGFzc2lvbmF0ZWx5IHRoYXQgdGhlIGhlYWx0aCBjaGVjayBpcyBhIGdyZWF0IHN0YXJ0aW5nIHBvaW50IHRvIHBlb3BsZSBoZWxwaW5nIHRoZW1zZWx2ZXMgdG8gbGl2ZSBpbiBnb29kIGhlYWx0aCBmb3IgbG9uZ2VyLiBXZSB3YW50IHRvIGVuY291cmFnZSBtb3JlIHBlb3BsZSB0byB0YWtlIHVwIHRoZWlyIGZyZWUgaGVhbHRoIGNoZWNrLCBzbyBhcmUgeW91IHVwIGZvciB0aGUgY2hhbGxlbmdlIGluIDIwMTcvMTg/IEl04oCZcyBuZXZlciB0b28gbGF0ZSDigJMgaWYgeW91IHdlcmUgb2ZmZXJlZCBhIGhlYWx0aCBjaGVjayBsYXN0IHllYXIgYW5kIGRpZG7igJl0IHRha2UgaXQgdXAg4oCTIHlvdSBjYW4gc3RpbGwgaGF2ZSB5b3VyIGNoZWNrIC1nbyB0byBbd3d3Lndlc3RzdXNzZXh3ZWxsYmVpbmcub3JnLnVrL2hlYWx0aGNoZWNrc11bMF0gYW5kIGZpbmQgb3V0IHdoZXJlIHlvdSBjYW4gZ2V0IG9uZSBuZWFyIHRvIHlvdS5cXG5cXG5bMF06IGh0dHA6Ly93d3cud2VzdHN1c3NleHdlbGxiZWluZy5vcmcudWsvaGVhbHRoY2hlY2tzXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkV2ZXJ5b25lIGlzIGF0IHJpc2sgb2YgZGV2ZWxvcGluZyBoZWFydCBkaXNlYXNlLCBzdHJva2UsIGRpYWJldGVzLCBraWRuZXkgZGlzZWFzZSBhbmQgc29tZSBmb3JtcyBvZiBkZW1lbnRpYS5cXG5cXG5UaGUgZ29vZCBuZXdzIGlzIHRoYXQgdGhlc2UgY29uZGl0aW9ucyBjYW4gb2Z0ZW4gYmUgcHJldmVudGVkIC0gZXZlbiBpZiB5b3UgaGF2ZSBhIGhpc3Rvcnkgb2YgdGhlbSBpbiB5b3VyIGZhbWlseS5cXG5cXG5IYXZlIHlvdXIgZnJlZSBOSFMgSGVhbHRoIENoZWNrIGFuZCB5b3Ugd2lsbCBiZSBiZXR0ZXIgcHJlcGFyZWQgZm9yIHRoZSBmdXR1cmUgYW5kIGJlIGFibGUgdG8gdGFrZSBzdGVwcyB0byBtYWludGFpbiBvciBpbXByb3ZlIHlvdXIgaGVhbHRoLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJZb3VyIHJpc2sgb2YgZGV2ZWxvcGluZyBoZWFydCBkaXNlYXNlLCBzdHJva2UsIHR5cGUgMiBkaWFiZXRlcywga2lkbmV5IGRpc2Vhc2UgYW5kIGRlbWVudGlhIGluY3JlYXNlcyB3aXRoIGFnZS4gVGhlcmUgYXJlIGFsc28gY2VydGFpbiB0aGluZ3MgdGhhdCB3aWxsIHB1dCB5b3UgYXQgZXZlbiBncmVhdGVyIHJpc2suIFRoZXNlIGFyZTpcXG5cXG4qIGJlaW5nIG92ZXJ3ZWlnaHRcXG4qIGJlaW5nIHBoeXNpY2FsbHkgaW5hY3RpdmVcXG4qIG5vdCBlYXRpbmcgaGVhbHRoaWx5XFxuKiBzbW9raW5nXFxuKiBkcmlua2luZyB0b28gbXVjaCBhbGNvaG9sXFxuKiBoaWdoIGJsb29kIHByZXNzdXJlXFxuKiBoaWdoIGNob2xlc3Rlcm9sXFxuXFxuXFxuU28gZXZlbiBpZiB5b3UncmUgZmVlbGluZyB3ZWxsLCBpdCdzIHN0aWxsIHdvcnRoIGhhdmluZyB5b3VyIDIwLTMwIG1pbnV0ZSBoZWFsdGggY2hlY2sgbm93IHRvIGtlZXAgeW91IGhlYWx0aHkgZm9yIHRoZSBmdXR1cmUuIFxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyL0phbnVhcnkgMjAxOCoqXFxuXFxuLSAtIC1cXG5cXG5XU0NDIGV4cGVjdHMgMzAsMDAwIHBlb3BsZSB0byBiZSBvZmZlcmVkIHRoZSBvcHBvcnR1bml0eSB0byBoYXZlIHRoZWlyIE5IUyBoZWFsdGggY2hlY2sgaW4gMjAxNy8xOCB3aGljaCBlcXVhdGVzIHRvIDIsNTAwIHBlciBtb250aC4gV1NDQyBpbnRlbmRzIHRvIGRlbGl2ZXIgYSBtaW5pbXVtIG9mIDExLDAwMCBoZWFsdGggY2hlY2tzIGFjcm9zcyB0aGUgeWVhciwgb2Ygd2hpY2ggOCw1NDggd2VyZSBkZWxpdmVyZWQgYnkgUXVhcnRlciAzLlxcblxcblRoZSBudW1iZXJzIG9mIGFjdHVhbCBoZWFsdGggY2hlY2tzIG9mZmVyZWQgYW5kIGRlbGl2ZXJlZCBmcm9tIEFwcmlsIHRvIERlY2VtYmVyIGFyZSBpbmxpbmUgd2l0aCB0aGUgbG9jYWxseSBhZ3JlZWQgcGxhbi4gVGhlIHByb2dyYW1tZSBpcyBvbiB0cmFjayB0byBhY2hpZXZlIGFzIHBsYW5uZWQgYnkgeWVhciBlbmQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyL09jdG9iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5XU0NDIGV4cGVjdHMgMzAsMDAwIHBlb3BsZSB0byBiZSBvZmZlcmVkIHRoZSBvcHBvcnR1bml0eSB0byBoYXZlIHRoZWlyIE5IUyBoZWFsdGggY2hlY2sgaW4gMjAxNy8xOCB3aGljaCBlcXVhdGVzIHRvIDIsNTAwIHBlciBtb250aC4gV1NDQyBpbnRlbmRzIHRvIGRlbGl2ZXIgYSBtaW5pbXVtIG9mIDExLDAwMCBoZWFsdGggY2hlY2tzIGFjcm9zcyB0aGUgeWVhciwgb2Ygd2hpY2ggNSw3ODUgd2VyZSBkZWxpdmVyZWQgYnkgUXVhcnRlciAyLlxcblxcblRoZSBudW1iZXJzIG9mIGFjdHVhbCBoZWFsdGggY2hlY2tzIG9mZmVyZWQgYW5kIGRlbGl2ZXJlZCBmcm9tIEFwcmlsIHRvIFNlcHRlbWJlciBhcmUgaW4gbGluZSB3aXRoIHRoZSBsb2NhbGx5IGFncmVlZCBwbGFuLiBUaGUgcHJvZ3JhbW1lIGlzIG9uIHRyYWNrIHRvIGFjaGlldmUgYXMgcGxhbm5lZCBieSB5ZWFyIGVuZC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuV1NDQyBleHBlY3RzIDMwLDAwMCBwZW9wbGUgdG8gYmUgb2ZmZXJlZCB0aGUgb3Bwb3J0dW5pdHkgdG8gaGF2ZSB0aGVpciBOSFMgaGVhbHRoIGNoZWNrIGluIDIwMTcvMTggd2hpY2ggZXF1YXRlcyB0byA3LDUwMCBwZXIgcXVhcnRlci4gV1NDQyBpbnRlbmRzIHRvIGRlbGl2ZXIgYSBtaW5pbXVtIG9mIDExLDAwMCBoZWFsdGggY2hlY2tzIGFjcm9zcyB0aGUgeWVhciwgb2Ygd2hpY2ggMiw3NTggd2lsbCBiZSBkZWxpdmVyZWQgaW4gUXVhcnRlciAxLlxcblxcbkF0IHRoZSBlbmQgb2YgUXVhcnRlciAxLCB0aGUgbnVtYmVyIG9mIGhlYWx0aCBjaGVja3Mgb2ZmZXJlZCB3YXMgOSwzOTYgLSAyNSUgYWJvdmUgcGxhbm5lZC5cXG5cXG4gXFxuXFxuQWx0aG91Z2ggdGhpcyBpcyBzaWduaWZpY2FudGx5IGhpZ2hlciB0aGFuIHBsYW5uZWQsIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGUgeWVhciB0aGUgbnVtYmVyIGludml0ZWQgd2lsbCBjb21lIGJhY2sgaW4gbGluZS4gVGhlIG51bWJlciBvZiBoZWFsdGggY2hlY2tzIGRlbGl2ZXJlZCB3YXMgMiw4NTgsIHdoaWNoIGlzIDMuNiUgYWJvdmUgcGxhbm5lZC4gVGhlIHByb2dyYW1tZSBpcyBvbiB0cmFjayB0byBhY2hpZXZlIGFzIHBsYW5uZWQgYnkgeWVhci1lbmQuXFxuXFxuV1NDQyB3YW50cyB0byBlbmNvdXJhZ2UgbW9yZSBwZW9wbGUgdG8gdGFrZSB1cCB0aGUgb2ZmZXIgb2YgdGhlaXIgZnJlZSBoZWFsdGggY2hlY2suIEhlYWx0aCBjaGVja3MgYXJlIHdpZGVseSBhdmFpbGFibGUgYWNyb3NzIHRoZSBjb3VudHkuIE1vc3QgR1AgcHJhY3RpY2VzIG9mZmVyIHRoZSBzZXJ2aWNlIHRvIHRoZWlyIHJlZ2lzdGVyZWQgcGF0aWVudHMgYnkgaW52aXRhdGlvbi4gTWFueSBwaGFybWFjaWVzIG9mZmVyIHRoZSBzZXJ2aWNlIG9uIHRoZSBoaWdoIHN0cmVldCBhbmQgY29tbXVuaXR5IGNsaW5pY3MgYXJlIGhlbGQgaW4gYSB2YXJpZXR5IG9mIGNvbW11bml0eSB2ZW51ZXMuXFxuXFxuIFxcblxcbkRldGFpbHMgb2YgZWxpZ2liaWxpdHkgYW5kIGEgZnVsbCBsaXN0IG9mIHdoZXJlIHRoZSBOSFMgSGVhbHRoIENoZWNrIFNlcnZpY2UgaXMgYXZhaWxhYmxlIGNhbiBiZSBmb3VuZCBvbiBbd3d3Lndlc3RzdXNzZXh3ZWxsYmVpbmcub3JnLnVrL2hlYWx0aGNoZWNrc11bMF1cXG5cXG5bMF06IGh0dHA6Ly93d3cud2VzdHN1c3NleHdlbGxiZWluZy5vcmcudWsvaGVhbHRoY2hlY2tzXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzNERTYwQzg1LUY1MEYtNDJGQi1BQzVFLUYxQUM4RDkyMjgxOVwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiVGhpcyBnb2FsIGlzIG1lYXN1cmVkIGJ5IHRyYWNraW5nIHRoZSBudW1iZXIgb2YgcGVvcGxlIHRha2luZyB1cCB0aGUgb2ZmZXIgb2YgYSBOSFMgaGVhbHRoIGNoZWNrXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGhlIHRhcmdldCBmb3IgMjAxNy8xOCBpcyAxNCw1MDAgcGVvcGxlIGFnZWQgNDAgdG8gNzQgdGFraW5nIHVwIHRoZSBvZmZlciBvZiBhIGhlYWx0aCBjaGVja1wifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE3LTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6InBlb3BsZSIsInRhcmdldCI6MTQ1MDAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjE3MDAsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoieW55bi1maHdlIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTd9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH19LFwic3RhcnRcIjpcIjIwMTQtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTQtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJ0aGUgbnVtYmVyIG9mIHBlb3BsZSBhY2Nlc3NpbmcgTkhTIGhlYWx0aCBjaGVja3NcIixcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOmZhbHNlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcIndpdGhpbl90b2xlcmFuY2VcIn0ifSwidXBkYXRlZF9hdCI6IjIwMTgtMDQtMTJUMDk6NDg6NTEuNTk3WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTAxLTI1VDE1OjMyOjQ0LjIyMFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNC0xMlQwOTo0ODo1MS41OTdaIiwidGFyZ2V0X3RvbGVyYW5jZSI6NDUwMCwiaWQiOiI3YmozLTQ1N3EifSwicmVsYXRlZF9tZWFzdXJlcyI6W3sibWV0YWRhdGEiOiIiLCJpZCI6InJuamItMjJhdSJ9XSwiYmFzZV9kYXNoYm9hcmQiOiIzOG1uLTV2Z2QiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNC0xOFQxMTowMDoyMi42ODdaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDEtMjVUMTU6MzI6NDQuMjg1WiIsInZlcnNpb24iOiIyMDE4LTA0LTE4VDExOjAwOjIyLjY4N1oiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn1dLCJ2ZXJzaW9uIjoiMjAxOC0wMy0xM1QwODo1NjozMC41ODNaIn1dLCJpc19wdWJsaWMiOnRydWUsInZlcnNpb24iOiIyMDE4LTAzLTEzVDA4OjU2OjMwLjk4OVoifX0=
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=