PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+VW50aXRsZWQgRG9jdW1lbnQ8L3RpdGxlPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgo8L2hlYWQ+Cgo8Ym9keT4KPGgxPlNPQVAgQmFzZWQgQVhJUyBDbGllbnQgZm9yIEdvb2dsZSBTZWFyY2g8L2gxPgoKPGgyPlNlY3Rpb24gMSAtIEJhc2ljIE9wZXJhdGlvbnM8L2gyPgoKPGgzPjxzdHJvbmc+SW50cm9kdWN0aW9uPC9zdHJvbmc+PC9oMz4KCjxwPlRoaXMgaXMgYSBjbGllbnQgdGhhdCBjYW4gYmUgdXNlZKAgdG8gZG8gR29vZ2xlIHNlYXJjaGVzIHVzaW5nIHRoZSBHb29nbGUKV2ViIEFQSS4gSXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGEgd29yZCBhcyB0aGUgcXVlcnkgcGFyYW1ldGVycyBpbiB0aGUKZ2l2ZW4gdGV4dCBmaWVsZCBvZiB0aGUgR1VJIGFuZCBpbiBhIG1vbWVudCBpdCBzaG93cyB0aGUgc2VhcmNoIHJlc3VsdHMgaW4KdGhlIHRleHQgcGFuZSBiZWxvdy4gVGhlIHNwZWNpYWwgZmVhdHVyZSBvZiB0aGlzIGNsaWVudCBpcywgd2hlbiB0aGUgdXNlcgpwcmVzc2VzIHRoZSBzcGFjZSBrZXkgYWZ0ZXIgdHlwaW5nIGEgd29yZCBpdCBzdGFydHMgc2VhcmNoaW5nIGZvciB0aGF0IHdvcmQKYW5kIGRpc3BsYXlzIHRoZSByZXN1bHRzIHdoaWxlIHRoZSB1c2VyIHR5cGluZyB0aGUgbmV4dCB3b3JkLiBUaGlzIGZlYXR1cmUgaXMKbWFkZSBwb3NzaWJsZSBieSAgdGhlIG5vbiBibG9ja2luZ6AgaW52b2NhdGlvbiBjYXBhYmlsaXR5IG9mIEF4aXMyLiA8L3A+Cgo8aDM+PHN0cm9uZz5HZXR0aW5nIFN0YXJ0ZWQ8L3N0cm9uZz48L2gzPgoKPHA+R29vZ2xlIHNlYXJjaCBvcGVyYXRpb24gaXMgZG9uZSBieSBtZWFucyBvZiBHb29nbGUgV2ViIEFQSS4gKFlvdSBjYW4gbGVhcm4KbW9yZSBhbmQgY3JlYXRlIHlvdXIgb3duIGFjY291bnQgaW4gR29vZ2xlIFdlYiBBUEkgPGEKaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tL2FwaXMvIj5oZXJlPC9hPikuIElmIHlvdSBuZWVkIHRvIGJ1aWxkIHlvdXIgb3duCmNsaWVudCB1c2luZyB0aGlzIFdlYiBBUEksICB5b3Ugc2hvdWxkIG9idGFpbiBhIGxpY2Vuc2Uga2V5IHdoaWNoIGNhbiBiZQpvYnRhaW5lZCBlYXNpbHkgYXQgdGhlIEdvb2dsZSBXZWIgQVBJIHBhZ2UuPC9wPgoKPHA+V2hlbiB5b3Ugd29yayB3aXRoIHRoaXMgY2xpZW50LCB5b3UgY2FuIHVzZSB0aGUgZ2l2ZW4gbGljZW5zZSBrZXkgd2l0aAp0aGlzIHJlbGVhc2UgKFRoaXMgZGVmYXVsdCBrZXkgaXMgaW5jbHVkZWQgaW4gYSBwcm9wZXJ0eSBmaWxlIGluc2lkZSB0aGUgamFyCmZpbGUgd2hpY2ggd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVzZWQgaW4gdGhlIHNhbXBsZSB3aGVuIHN0YXJ0ZWQpLiBIb3dldmVyIGl0CmlzIGNvbnZlbmllbnQgZm9yIHlvdSB0byBnZXQgYSBsaWNlbnNlIGtleSBvZiB5b3VyIG93biBzaW5jZSB0aGUgZGFpbHkgbGltaXQKcGVyIGtleSBpcyAxMDAwIHJlcXVlc3RzIGFuZCB0aGUgbGltaXQgd2lsbCBiZSByZWFjaGVkIHF1aWNrbHkgaWYgYSBzaW5nbGUKbGljZW5zZSBrZXkgaXMgc2hhcmVkIGJ5IG1hbnkgdXNlcnMuPC9wPgoKPHA+VGhlIGZpcnN0IGFuZCB0aGUgZWFzaWVzdCBvcHRpb24gaXMgZG93bmxvYWRpbmcgdGhlIGJpbmFyeSBkaXN0cmlidXRpb24Kd2hpY2ggaW5jbHVkZXMgdGhlIGNvbXBpbGVkIHNhbXBsZXMuIFNjcmlwdHMgYXJlIGluY2x1ZGVkIGZvciBzdGFydGluZyB0aGUKcHJvZ3JhbSBpbiBlaXRoZXIgV2luZG93cyBvciBVbml4LjwvcD4KCjxwPlNlY29uZCBvcHRpb24gaXMgdG8gYnVpbGQgdGhlIHNhbXBsZXMgZnJvbSBzb3VyY2UuIFRoaXMgaGFzIHRvIGJlIGRvbmUKd2l0aCBNYXZlbi4gQWxsIHlvdSBoYXZlIHRvIGRvIGlzIGdvIHRvIE1vZHVsZXMvU2FtcGxlcyBhbmQgdHlwZSBtYXZlbiBpbiB0aGUKY29tbWFuZCBwcm9tcHQuIFRoaXMgd2lsbCBjb21waWxlIGFuZCB3aWxsIGJ1aWxkIGFsbCB0aGUgamFycyByZXF1aXJlZCBhbmQKY29weSB0aGUgbmVjZXNzYXJ5IHNjcmlwdHMgYXMgd2VsbC48L3A+Cgo8cD5FeGVjdXRlIHRoZSBuZWNlc3Nhcnkgc2hlbGwgc2NyaXB0cyAvIGJhdGNoIGZpbGVzIHRvIHN0YXJ0IHRoZSB0b29sLjwvcD4KCjxoMz48c3Ryb25nPkl0ZW1zIGluIHRoZSBVSTwvc3Ryb25nPjwvaDM+Cgo8cD5UaGUgZm9sbG93aW5nIGZpZ3VyZSBzaG93cyB0aGUgVUkgb2YgdGhlIHRvb2w8L3A+Cgo8cD48aW1nIGJvcmRlcj0iMCIgc3JjPSJzY2VlblNob3QxLkpQRyIgd2lkdGg9IjYxNiIgaGVpZ2h0PSI1NzciPjwvcD4KCjxwPlRoZSBrZXkgY2FuIGJlIHNldCBieSB1c2luZyB0aGUgc2V0dGluZ3MgbWVudTwvcD4KCjxwPjxpbWcgYm9yZGVyPSIwIiBzcmM9InNjcmVlblNob3QyLkpQRyIgd2lkdGg9IjE2MyIgaGVpZ2h0PSIxMjkiPjwvcD4KCjxwPlRoZSBIZWxwIG1lbnUgcG9wcyB1cCBhIGhlbHAgd2luZG93IHdoaWNoIGluY2x1ZGVzIHRoaXMgdGV4dDwvcD4KCjxwPjxpbWcgYm9yZGVyPSIwIiBzcmM9InNjcmVlblNob3QzLkpQRyIgd2lkdGg9IjE5MyIgaGVpZ2h0PSIxMTIiPjwvcD4KCjxwPqA8L3A+Cgo8aDM+PHN0cm9uZz5PcGVyYXRpb248L3N0cm9uZz48L2gzPgoKPHA+Tm93IHlvdSBhcmUgcmVhZHkgdG8gZG8gYSBHb29nbGUgc2VhcmNoIC0gU09BUCBzdHlsZS4gSnVzdCB0eXBlIHRoZSB3b3JkCnlvdSB3YW50IHRvIHNlYXJjaCBpbiB0aGUgc21hbGwgdGV4dCBmaWVsZCBpbiB0aGUgR1VJLiBBZnRlciB5b3UgcHJlc3MgZW50ZXIKb3Igc3BhY2UsIGNsaWVudCBzdGFydHMgdGhlIHNlYXJjaGluZyBhbmQgeW91IHdpbGwgc2VlIHRoZSByZXN1bHRzIGRpc3BsYXllZApmZXcgc2Vjb25kcy48L3A+Cgo8cD5Zb3UgY2FuIGFsc28gc2V0IHRoZSBudW1iZXIgb2YgcmVzdWx0cyBwZXIgcGFnZSBmcm9tIHRoZSBzZXQgbWVudS4gTWF4aW11bQppcyAxMCByZXN1bHRzLiBZb3UgY2FuIHZpZXcgbW9yZSByZXN1bHRzIGZvciB0aGUgbGFzdCBzZWFyY2ggYnkgcHJlc3NpbmcKIk1vcmUgUmVzdWx0cyIgYnV0dG9uIGFuZCBjYW4gY29tZSBiYWNrIHRvIHByZXZpb3VzIHBhZ2UgYnkgIlByZXZpb3VzIFBhZ2UiCmJ1dHRvbi48L3A+Cgo8aDI+U2VjdGlvbiAyIC0gSG93IHRoZSBzYW1wbGUgd29ya3M8L2gyPgoKPGgzPjxzdHJvbmc+QXJjaGl0ZWN0dXJlPC9zdHJvbmc+PC9oMz4KCjxwPlRoaXMgY2xpZW50IGlzIGJ1aWx0IGZyb20gZml2ZSBjbGFzc2VzLjwvcD4KPG9sPgogIDxsaT5Bc3luY2hyb25vdXNDbGllbnQ6LSBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBzZW5kaW5nIHJlcXVlc3RzPC9saT4KICA8bGk+Q2xpZW50VXRpbDotIFV0aWxpdHkgY2xhc3MgdG8gYnVpbGQgdGhlIHNvYXAgZW52ZWxvcGUgYW5kIHRoZQogICAgbWVzc2FnZUNvbnRleHQ7PC9saT4KICA8bGk+Q2xpZW50Q2FsbGJhY2tIYW5kbGVyOi0gcmVjZWl2ZXMgdGhlIHJlc3BvbnNlIG1lc3NhZ2VzIGFuZCBwcm9jZXNzZXMgaXQKICAgIHRvIGV4dHJhY3QgdGhlIHJlcXVpcmVkIGNvbnRlbnQuPC9saT4KICA8bGk+TGlua0ZvbGxvd2VyOi0gTGlzdGVucyB0byB0aGUgaHlwZXJsaW5rIGV2ZW50cyBhbmQgcHJvZHVjZSBuZXcgd2luZG93cwogICAgdG8gb3BlbiByZWxldmFudCBVUkxzLjwvbGk+CiAgPGxpPkdVSUhhbmRsZXI6LSBCdWlsZHMgJmFtcDsgc2hvd3MgdGhlIEdVSSwgTGlzdGVuc6AgdG8gdGhlIGV2ZW50cyBpbiB0aGUKICAgIEdVSSwgPC9saT4KPC9vbD4KCjxwPjxpbWcgc3JjPSJhcmNoaS5KUEciIHdpZHRoPSI1NTAiIGhlaWdodD0iMzg0Ij48L3A+Cgo8cD5UaGUgbWFpbiBtZXRob2QgaXMgaW5zaWRlIHRoZSBBc3luY2hyb25vdXNDbGllbnQgY2xhc3MuIEZpcnN0IGl0Cmluc3RhbnRpYXRlcyBhIExpbmtGb2xsb3dlciBhbmQgYSBHVUlIYW5kbGVyIC4gVGhlbiB0aGUgbWFpbiBwcm9ncmFtIGNhbGxzIHRvCnRoZSBHVUlIYW5kbGVyIHRvIGRpc3BsYXkgdGhlIEdVSS4gQWZ0ZXIgdGhhdCwgdGhlIHByb2dyYW0gc3RhcnRzIHJ1bm5pbmcgYW5kCmNhcHR1cmVzIGFuZCBhY3RzIGFjY29yZGluZyB0byB0aGUgZXZlbnRzIGZpcmVkIGJ5IHRoZSBHVUkuIFRoZSBLZXlMaXN0bmVyCnRoYXQgbGlzdGVucyB0byB0aGUgdGV4dCBmaWVsZCBldmVudHMgZmlyZXMgYSBzZWFyY2ggd2hlbiBpdCBkZXRlY3RzIGEgc3BhY2UKb3IgRW50ZXIga2V5LiBJdCB3b3VsZCBub3QgdGFrZSBsb25nIHRpbWUgc2VuZCBhIHJlcXVlc3QsIGJ1dCBoZXJlIGl0J3MgZG9uZQp1c2luZyBhIHNlcGFyYXRlIHRocmVhZCBiZWNhdXNlIGl0J3MgaW1wb3J0YW50IHRvIGlzb2xhdGUgdGhlIEdVSSBmcm9tCmludGVybmFsIGFjdGlvbnMuIFRoZSB1c2VyIG5ldmVyIGdldHMgaW50ZXJydXB0ZWQgaW4gYW55d2F5LiBTbyB0aGUgdXNlciBjYW4KdHlwZSB0aGUgcXVlcnkgdGVybXMgY29udGludW91c2x5IG9uIHRoZSB0ZXh0IGZpZWxkIHdoaWxlIHRoZSBwcm9ncmFtIGRvZXMKdGhlIHNlYXJjaCBmb3IgdGhlIHF1ZXJ5IHRlcm1zIHRoYXQgYXJlIGFscmVhZHkgdHlwZWQgYW5kIGRpc3BsYXlzIHRoZQpyZXN1bHRzLjwvcD4KCjxwPlRoZSB1c2Ugb2YgdGhlIG90aGVyIHRocmVhZCBjb21lcyB3aGVuIHRoZSB1c2VyIGNsaWNrIG9uIGEgaHlwZXJsaW5rLiBUaGVuCnRoZSBwcm9ncmFtIG9wZW5zIHRoZSBVUkwgaW4gYSBuZXcgd2luZG93LiBUaGlzIG1heSB0YWtlIGEgd2hpbGUgdG8gbG9hZCB1cApkZXBlbmRpbmcgb24gdGhlIFdlYiBzaXRlLiBIZW5jZSBhIHNlcGFyYXRlIHRocmVhZCBpcyB1c2VkICwgd2hlcmUgdGhloApMaW5rRm9sbG93ZXIgaXMgbWFkZSBhIFRocmVhZC4gPC9wPgoKPGgzPjxzdHJvbmc+TW9yZSBvbiB0aGUgQ29kZTwvc3Ryb25nPjwvaDM+Cgo8cD5Ob3cgd2UgaGF2ZSB0d28gdGhyZWFkcywgb25lIGlzIGZvcqAgc2VuZGluZyB0aGUgc29hcCByZXF1ZXN0IHdpdGhvdXQKaW50ZXJydXB0aW5nIHRoZSB1c2VyIGFuZCBvdGhlciBpcyB0byBvcGVuIGEgbmV3IHdpbmRvd3MgZm9yIGNsaWNrZWQgVVJMcy4KQnV0IHRoZXJlIGlzIGFub3RoZXIgaW1wb3J0YW50IGFjdGlvbi4gVGhhdCBpcyBwcm9jZXNzaW5nIHRoZSByZWNlaXZlZApyZXNwb25zZSBhbmQgZGlzcGxheWluZyB0aGUgcmVzdWx0cy4gVGhhdCBpcyBkb25lIGluIHRoZQpDbGllbnRDYWxsYmFja0hhbmRsZXIuIFRoaXMgaXMgYWxzbyBhbiBpbXBvcnRhbnQgZmVhdHVyZSBvZiB0aGUKSW52b2tlTm9uQmxvY2tpbmcgb3BlcmF0aW9uIG9mIEF4aXMyLiBJdCBsZXRzIHlvdSB0byBoYXZlIGFuIGFkZGl0aW9uYWwKdGhyZWFkIGluIHRoZSBjYWxsYmFja0hhbmRsZXIgY2xhc3MuIEFsbCB5b3UgaGF2ZSB0byBkbyBpcyBzZW5kIGFuIG9iamVjdCBvZgp0aGF0IGNsYXNzIGFzIGEgcGFyYW1ldGVyIHdoZW4geW91IHNlbmQgdGhlIG1lc3NhZ2UuIEhvdyBpdCBpcyBkb25lIGluIHRoZQpwcm9ncmFtIGlzIGFzIGZvbGxvd3MuIDwvcD4KCjxwPjxjb2RlPmNhbGwuaW52b2tlTm9uQmxvY2tpbmcob3BkZXNjLCByZXF1ZXN0Q29udGV4dCwgbmV3CkNsaWVudEVjaG9DYWxsYmFja0hhbmRsZXIoKSk7PC9jb2RlPjwvcD4KCjxwPm9wRGVzYyBpcyBhIFFOYW1lIHdoaWNoIGNhcmllcyB0aGUgb3BlcmF0aW9uIG5hbWUgYW5kIHJlbGV2YW50Cm5hbWVzcGFjZS48L3A+Cgo8cD5yZXF1ZXN0Q29udGV4dCBpcyBhIE1lc3NhZ2VDb250ZXh0IHRoYXQgaG9sZHMgdGhlIHJlcXVlc3Qgc29hcAplbnZlbG9wZS48L3A+Cgo8cD5DbGllbnRFY2hvQ2FsbGJhY2tIYW5kbGVyIGlzIGEgY2xhc3MgdGhhdCByZWNlaXZlcyB0aGUgcmVzcG9uc2Ugc29hcAplbnZlbG9wZS48L3A+Cgo8cD5CcmllZmx5LCBjbGllbnQgdGhyZWFkIGlzIGp1c3Qgc2VuZGluZyB0aGUgcmVxdWVzdHMgYW5kIGl0IGlzIG5vdCB3YWl0aW5nCmZvciB0aGUgcmVzcG9uc2UuIFNvIHRoaXMgY2xpZW50IGNhbiBzZW5kIGFueSBhbW91bnQgb2YgcmVxdWVzdHMgc2VxdWVudGlhbGx5CmlycmVzcGVjdGl2ZSBvZiB3aGV0aGVyIHRoZSByZXNwb25zZXMgYXJlIHJlY2VpdmVkIG9yIG5vdC4KQ2xpZW50RWNob0NhbGxiYWNrSGFuZGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHJlc3BvbnNlIG1lc3NhZ2VzIGFuZApwcm9jZXNzaW5nIGl0LiBJdCBleHRyYWN0cyB0aGUgcmVxdWlyZWQgZGV0YWlscyBmcm9tIHRoZSBtZXNzYWdlIGFuZCBkaXNwbGF5cwppdCBpbiB0aGUgdGV4dCBwYW5lIG9mIHRoZSBHVUkuPC9wPgoKPHA+VGhlIHJlcXVlc3Qgc29hcCBtZXNzYWdlIGlzIGJ1aWx0IGF0IHRoZSBDbGllbnRVdGlsIGNsYXNzLiBBY2NvcmRpbmcgdG8KdGhlIEdvb2dsZSBXZWIgQVBJIFdTREwgZmlsZSwgcmVxdWlyZWQgbmFtZXNwYWNlcyBhcmUgc2VsZWN0ZWQgYW5kIGF0dGFjaGVkCnRvIHRoZSBlbnZlbG9wZS4gV2UgZG9uJ3QgaGF2ZSB0byBpbmNsdWRlIGFueXRoaW5nIGluIHRoZSBoZWFkZXIuIFRoZSBuYW1lIG9mCnRoZSBmaXJzdCBjaGlsZCBlbGVtZW50IG9mIHRoZSBib2R5IHNob3VsZCBiZSBvcGVyYXRpb24gbmFtZSBhbmQgaXQgc2hvdWxkIGJlCm5hbWVzcGFjZSBxdWFsaWZpZWQuIFdlIGFsc28gaGF2ZSB0byBpbmNsdWRlIHRoZSBiaW5kaW5nIG5hbWVzcGFjZSB0byB0aGlzCmVsZW1lbnQuIEhlcmUgaXQgaXMgYXR0YWNoZWQgYXMgYW4gYXR0cmlidXRlIHRvIHRoYXQgZWxlbWVudCw8L3A+Cgo8cD48Y29kZT5PTUVsZW1lbnQgb3BlcmF0aW9uID0gb21GYWN0b3J5LmNyZWF0ZU9NRWxlbWVudCgiZG9Hb29nbGVTZWFyY2giLAoidXJuOkdvb2dsZVNlYXJjaCIsICJuczEiKTs8L2NvZGU+PC9wPgoKPHA+PGNvZGU+b3ByYXRpb24uYWRkQXR0cmlidXRlKCJTT0FQLUVOVjplbmNvcmRpbmdTdHlsZSIsCiJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VuY29kaW5nLyIsIG51bGwpOzwvY29kZT48L3A+Cgo8cD5BbGwgdGhlIGNoaWxkIGVsZW1lbnRzIG9mIHRoZSBvcGVyYXRpb24gZWxlbWVudCBhcmUgY2FycnlpbmcgcmVxdWlyZWQKcGFyYW1ldGVycyBzdWNoIGFzIGxpY2Vuc2Uga2V5LCBxdWVyeSB0ZXJtcywgcmVzdWx0cyBwZXIgcGFnZSwgZXRjLiAoZm9yIG1vcmUKaW5mb3JtYXRpb24sIGRvd25sb2FkIHRoZSBkZXZlbG9wZXIga2l0IGZyb20gPGEKaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tL2FwaXMvZG93bmxvYWQuaHRtbCI+aHR0cDovL3d3dy5nb29nbGUuY29tL2FwaXMvZG93bmxvYWQuaHRtbAo8L2E+LCBhbmQgcmVmZXIgIkFQSXNfUmVmZXJlbmNlLmh0bWwiKTwvcD4KCjxwPlRoaXMgaXMgYSBzYW1wbGUgcmVxdWVzdCBzb2FwIGVuZWxvcGUsPC9wPgoKPHA+PHNhbXA+Jmx0O3NvYXBlbnY6RW52ZWxvcGUKeG1sbnM6c29hcGVudj0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iCnhtbG5zOlNPQVAtRU5DPSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VuY29kaW5nLyIKeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hNTFNjaGVtYS1pbnN0YW5jZS8iCnhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YTUxTY2hlbWEiJmd0Ozxicj4KJmx0O3NvYXBlbnY6SGVhZGVyJmd0OyZsdDsvc29hcGVudjpIZWFkZXImZ3Q7PGJyPgombHQ7c29hcGVudjpCb2R5Jmd0Ozwvc2FtcD48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD48c2FtcD4mbHQ7bnMxOmRvR29vZ2xlU2VhcmNoIHhtbG5zOm5zMT0idXJuOkdvb2dsZVNlYXJjaCIKICBTT0FQLUVOVjplbmNvcmRpbmdTdHlsZT0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbmNvZGluZy8iJmd0Ozxicj4KICAmbHQ7a2V5IHhtbG5zPSIiCiAgeHNpOnR5cGU9InhzZDpzdHJpbmciJmd0O0Ywd3Q1RUZRRkhLeFRzK3JsM1ArMjdvNkQxMTJCVFdkJmx0Oy9rZXkmZ3Q7PGJyPgogICZsdDtxIHhtbG5zPSIiIHhzaTp0eXBlPSJ4c2Q6c3RyaW5nIiZndDtheGlzJmx0Oy9xJmd0Ozxicj4KICAmbHQ7c3RhcnQgeG1sbnM9IiIgeHNpOnR5cGU9InhzZDppbnQiJmd0OzAmbHQ7L3N0YXJ0Jmd0Ozxicj4KICAmbHQ7bWF4UmVzdWx0cyB4bWxucz0iIiB4c2k6dHlwZT0ieHNkOmludCImZ3Q7MiZsdDsvbWF4UmVzdWx0cyZndDs8YnI+CiAgJmx0O2ZpbHRlciB4bWxucz0iIiB4c2k6dHlwZT0ieHNkOmJvb2xlYW4iJmd0O3RydWUmbHQ7L2ZpbHRlciZndDs8YnI+CiAgJmx0O3Jlc3RyaWN0IHhtbG5zPSIiIHhzaTp0eXBlPSJ4c2Q6c3RyaW5nIiZndDsmbHQ7L3Jlc3RyaWN0Jmd0Ozxicj4KICAmbHQ7c2FmZVNlYXJjaCB4bWxucz0iIgogIHhzaTp0eXBlPSJ4c2Q6Ym9vbGVhbiImZ3Q7ZmFsc2UmbHQ7L3NhZmVTZWFyY2gmZ3Q7PGJyPgogICZsdDtsciB4bWxucz0iIiB4c2k6dHlwZT0ieHNkOnN0cmluZyImZ3Q7Jmx0Oy9sciZndDs8YnI+CiAgJmx0O2llIHhtbG5zPSIiIHhzaTp0eXBlPSJ4c2Q6c3RyaW5nIiZndDtsYXRpbjEmbHQ7L2llJmd0Ozxicj4KICAmbHQ7b2UgeG1sbnM9IiIgeHNpOnR5cGU9InhzZDpzdHJpbmciJmd0O2xhdGluMSZsdDsvb2UmZ3Q7PGJyPgogICZsdDsvbnMxOmRvR29vZ2xlU2VhcmNoJmd0Ozwvc2FtcD48L3A+CjwvYmxvY2txdW90ZT4KCjxwPjxzYW1wPiZsdDsvc29hcGVudjpCb2R5Jmd0OyZsdDsvc29hcGVudjpFbnZlbG9wZSZndDs8L3NhbXA+PC9wPgoKPHA+WW91IGNhbiBmaW5kIGEgc2FtcGxlIHNvYXAgcmVzcG9uc2UgbWVzc2FnZSBmcm9tIHRoZSB0b29sa2l0IHRoYXQgeW91CmRvd25sb2FkIGZyb20gdGhlIEdvb2dsZSBXZWIgQVBJIHBhZ2UuLiBDbGllbnRDYWxsYmFja0hhbmRsZXIgcHJvY2Vzc2luZwpyZXNwb25zZSBzb2FwIGFuZCBleHRyYWN0IGVsZW1lbnRzIHdoaWNoIGhhdmUgdGhlIGxvY2FsIG5hbWVzIGFzICJzbmlwcGV0IgphbmQgIlVSTCIuIEl0IGhhcyB0byB3b3JrIHdpdGggQVhJT00uIFlvdSBjYW4gbm90aWNlIHRoYXQgaXQgdXNlcyBzZXZlcmFsCkl0ZXJhdG9ycyB0byBnbyB0aHJvdWdoIHRoZSBjaGlsZHJlbiBvZiBhbiBPTUVsZW1lbnQuoCB0aGUgSXRlcmF0b3IgcmV0dXJucwphbiBvYmplY3QgdGhhdCBjYW4gYmUgY2FzdCBpbnRvIGFuIE9NTm9kZS4gU2luY2UgeW91IGNhbid0IGNhbGwgZm9yIHRoZQpjaGlsZHJlbiBvZiBhbiBPTU5vZGUgd2UgaGF2ZSB0byBjYXN0IGl0IHRvIGFuIE9NRWxlbWVudCB3aGVyZSBhIHR5cGUKY2hlY2tpbmcgbmVlZHMgdG8gYmUgZG9uZSBhcyBmb2xsb3dzLiA8L3A+CjxwcmU+SXRlcmF0b3IgaXRlcmF0b3IwID0Kb3BlcmF0aW9uLmdldENoaWxkcmVuKCk7CndoaWxlIChpdGVyYXRvcjAuaGFzTmV4dCgpKSB7Ck9NTm9kZSBub2RlID0gKE9NTm9kZSkgaXRlcmF0b3IwLm5leHQoKTsKaWYgKG5vZGUuZ2V0VHlwZSgpID09IE9NTm9kZS5FTEVNRU5UX05PREUpIHsKT01FbGVtZW50IGVsZW0gPSAoT01FbGVtZW50KSBub2RlOzwvcHJlPgoKPHA+QSBub3RhYmxlIGZhY3QgaGVyZSBpcyB0aGF0IHRoZSB0ZXh0IGluIHRoZSBzbmlwcGV0IGVsZW1lbnQgaXMgaW4gdGhlIEhUTUwKZm9ybWF0LiBCdXQgaXQgY2Fubm90IGJlIGRpc3BsYXllZCBzdHJhaWdodCBhd2F5IGJlY2F1c2UgeW91IGhhdmUgdG8gYXR0YWNoCnRoZSBIVE1MIGhlYWRlciBhbmQgZm9vdGVyIHRvIHRoYXQuICJiZWdpbkhUTUwiIGFuZCAiZW5kSFRNTCIgc3RhdGljCnZhcmlhYmxlcyBhcmUgdXNlZCBmb3IgdGhhdCBwdXJwb3NlLjwvcD4KCjxoMz48c3Ryb25nPkV4dGVuZGluZyB0aGUgQ2xpZW50PC9zdHJvbmc+PC9oMz4KCjxwPklmIHlvdSBvYnNlcnZlIHRoZSBXU0RMIGZpbGUgb2YgdGhlIEdvb2dsZSBBUEksIHlvdSBjYW4gZmluZCB0d28gbW9yZQpvcGVyYXRpb25zIG90aGVyIHRoYW4gIjxzdHJvbmc+ZG9Hb29nbGVTZWFyY2g8L3N0cm9uZz4iLiBUaG9zZSBhcmUKPHN0cm9uZz4iZG9HZXRDYWNoZWRQYWdlIiA8L3N0cm9uZz4gYW5kICIgPHN0cm9uZz5kb1NwZWxsaW5nU3VnZ2VzdGlvbiIKPC9zdHJvbmc+LiBZb3UgY2FuIGV4dGVuZCB0aGlzIHByb2dyYW0gdG8gd29yayB0aGVzZSBvcGVyYXRpb25zIHRvby4gQmVjYXVzZQp0aGUgc29hcCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIGFyZSBkaWZmZXJlbnQsIGl0IHdpbGwgbmVlZCBzZXBhcmF0ZQpDbGllbnRVdGlsIGNsYXNzZXMgYW5kIENsaWVudENhbGxiYWNrSGFuZGxlciBjbGFzc2VzIHRvIGZ1bGZpbGwgdGhpcyB0YXNrLjwvcD4KCjxwPqAgPC9wPgo8aHI+CjwvYm9keT4KPC9odG1sPgo=