A font of arcane power, certainly. But he’s brilliantly dim. Frankly, he couldn’t deduce his way out of a paper bag. The only thing he has really got going for him are the might of a thousand demons and his stalwart companion.
Thankfully, Dr. Watson is always there to aid him through the treacherous shoals of Victorian propriety… and save him from a gruesome death every now and again.
Includes Warlock Holmes (5 books & 1 short story).
Audio Sample Player
Social Media Share Widgets
Purchase Options
Format Information
ALL DOWNLOAD FORMATS INCLUDE LISTENING TO THE TITLE IN GRAPHICAUDIO ACCESS™ APP ON ANDROID AND APPLE IOS DEVICES! LEARN MORE.
GraphicAudio is available in various high quality digital audio formats.
Listen with Access App Only - Download our app for Apple iOS & Android. App Device Compatibility: Android phones with OS 5 or later and iPhone, iPad, and iPod touch with iOS 9.0 or later. The Access App Only option does not include a zip download.
MP3 (256kbps) - Download the zip file and Play with any media player. You also get to Listen with GraphicAudio Access App. This is the most common audio download format that will play on any computer or media player. The average size of this download will be around 600 MB.
M4B (256kbps) - Download the zip file and Play with Apple Music, iPhone, iPod and iPad. You also get to Listen with GraphicAudio Access App. This format will work only in iTunes, Quicktime, on a Mac computer, or on an iOS device such as iPhone or iPad. M4B's have the ability to bookmark in some audio apps. The M4B download is one complete file, so it is not split up into smaller parts. The average size of this download will be around 600 MB.
FLAC (16 bit / 44.1 khz) - Download the zip file and Play with VLC or other high quality audio software. You also get to Listen with GraphicAudio Access App. This a studio-quality lossless digital audio format. This means that it does not lose data like other types of compressed audio files. Lossless compression still retains low-level resolution of a standard CD. The advantage of FLAC is that it takes up less room on your computer than an WAV (CD files). The average size of this download will be around 2,000 MB (2 GB).
FLAC 5.1 SURROUND (16 bit / 44.1 khz) - Download the zip file and Play with 5.1 Surround Sound Home Theater systems or other high quality surround sound audio software. You also get to listen to stereo version with the GraphicAudio Access App. The average size of this download will be around 4,500 MB (4.5 GB).
How do I un-zip my download?
When you download the file, it arrives on your computer in a compressed format called zip. Before you can add the audio files to your library and listen to it, you'll need to decompress, or "unzip" it. Doing so is very easy: If you're on a PC, right-click the file and choose Extract All... You're done. If you're on a Mac, double-click the file and it extracts into a separate folder next to where the other file is located.
My zip download says it's expired. What now?
Click here to send a customer support ticket to us. Please include the order number if you have it.
6 Titles In This Set - See AllSee Fewer
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMwMjUtMTE5MTgxMTM2OSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iV0FSTE9DS0hPTE1FUzAxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlYyRnliRzlqYXlCSWIyeHRaWE1nTVRvZ1FTQlRkSFZrZVNCcGJpQkNjbWx0YzNSdmJtVT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvdy9hL3dhcmxvY2tfaG9sbWVzXzFfYV9zdHVkeV9pbl9icmltc3RvbmVfMS5qcGciCiAgICAgICAgICAgIGxvYWRpbmc9ImxhenkiCiAgICAgICAgICAgIHdpZHRoPSIyMDAiCiAgICAgICAgICAgIGhlaWdodD0iMjAwIgogICAgICAgICAgICBhbHQ9IldhcmxvY2smI3gyMDtIb2xtZXMmI3gyMDsxJiN4M0E7JiN4MjA7QSYjeDIwO1N0dWR5JiN4MjA7aW4mI3gyMDtCcmltc3RvbmUiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zMDI1LTExOTE4MTEzNjkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zMDI1LTExOTE4MTEzNjkgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzAyNS0xMTkxODExMzY5Iik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzAyNS0xMTkxODExMzY5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5XYXJsb2NrIEhvbG1lczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4xIDo8L3NwYW4+ICAgICAgICAgICAgICAgIEEgU3R1ZHkgaW4gQnJpbXN0b25lICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBHLlMuIERlbm5pbmc8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBKdW4gMTIsIDIwMTcgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gOCBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5TaGVybG9jayBIb2xtZXMgaXMgYW4gdW5wYXJhbGxlbGVkIGdlbml1cy4gV2FybG9jayBIb2xtZXMgaXMgYW4gaWRpb3QuIDxiciAvPg0KPGJyIC8+DQpBIGZvbnQgb2YgYXJjYW5lIHBvd2VyLCBjZXJ0YWlubHkuIEJ1dCBoZeKAmXMgYnJpbGxpYW50bHkgZGltLiBGcmFua2x5LCBoZSBjb3VsZG7igJl0IGRlZHVjZSBoaXMgd2F5IG91dCBvZiBhIHBhcGVyIGJhZy4gVGhlIG9ubHkgdGhpbmcgaGUgaGFzIHJlYWxseSBnb3QgZ29pbmcgZm9yIGhpbSBhcmUgdGhlIG1pZ2h0IG9mIGEgdGhvdXNhbmQgZGVtb25zIGFuZCBoaXMgc3RhbHdhcnQgY29tcGFuaW9uLiA8YnIgLz4NCjxiciAvPg0KVGhhbmtmdWxseSwgRHIuIFdhdHNvbiBpcyBhbHdheXMgdGhlcmUgdG8gYWlkIGhpbSB0aHJvdWdoIHRoZSB0cmVhY2hlcm91cyBzaG9hbHMgb2YgVmljdG9yaWFuIHByb3ByaWV0eeKApiBhbmQgc2F2ZSBoaW0gZnJvbSBhIGdydWVzb21lIGRlYXRoIGV2ZXJ5IG5vdyBhbmQgYWdhaW4uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICDCqSAyMDE2IEdhYnJpZWwgU3RlcGhlbiBEZW5uaW5nLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBSZWNvcmRlZCB3aXRoIHBlcm1pc3Npb24gb2YgdGhlIGF1dGhvci4g4oSXIDIwMTcgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo8YnI+PGJyPg0KPGRpdiBhbGlnbj0iY2VudGVyIiA+PGltZyBzcmM9Ii9wdWIvbWVkaWEvd3lzaXd5Zy9PZmZpY2lhbC1TZWxlY3Rpb24uanBnIiA+PC9kaXY+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvV0FSTE9DS0hPTE1FUzAxLm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1dBUkxPQ0tIT0xNRVMwMS5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyMDktOTk3ODU2MDM1Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJXQVJMT0NLSE9MTUVTMDIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3QtbmFtZT0iVjJGeWJHOWpheUJJYjJ4dFpYTWdNam9nVkdobElFaGxiR3d0U0c5MWJtUWdiMllnZEdobElFSmhjMnRsY25acGJHeGxjdz09IgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3cvYS93YXJsb2NrX2hvbG1lc18yX3RoZV9oZWxsLWhvdW5kX29mX3RoZV9iYXNrZXJ2aWxsZXMuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJXYXJsb2NrJiN4MjA7SG9sbWVzJiN4MjA7MiYjeDNBOyYjeDIwO1RoZSYjeDIwO0hlbGwtSG91bmQmI3gyMDtvZiYjeDIwO3RoZSYjeDIwO0Jhc2tlcnZpbGxlcyIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyMDktOTk3ODU2MDM1IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzIwOS05OTc4NTYwMzUgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzIwOS05OTc4NTYwMzUiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zMjA5LTk5Nzg1NjAzNSAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+V2FybG9jayBIb2xtZXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+MiA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgSGVsbC1Ib3VuZCBvZiB0aGUgQmFza2VydmlsbGVzICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBHLlMuIERlbm5pbmc8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBTZXAgMjcsIDIwMTcgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gOCBIb3VycwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnRyYXRpbmciPgogICAgICAgICAgICAgICAgPGxhYmVsPkNvbnRlbnQgUmF0aW5nOjwvbGFiZWw+IEFnZXMgMTMrICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgPGRpdiBjbGFzcz0ic3RkIj5TaGVybG9jayBIb2xtZXMgaXMgYW4gdW5wYXJhbGxlbGVkIGdlbml1cy4gV2FybG9jayBIb2xtZXMgaXMgYW4gaWRpb3QuIDxiciAvPg0KPGJyIC8+DQpBIGZvbnQgb2YgYXJjYW5lIHBvd2VyLCBjZXJ0YWlubHkuIEJ1dCBoZeKAmXMgYnJpbGxpYW50bHkgZGltLiBGcmFua2x5LCBoZSBjb3VsZG7igJl0IGRlZHVjZSBoaXMgd2F5IG91dCBvZiBhIHBhcGVyIGJhZy4gVGhlIG9ubHkgdGhpbmcgaGUgaGFzIHJlYWxseSBnb3QgZ29pbmcgZm9yIGhpbSBhcmUgdGhlIG1pZ2h0IG9mIGEgdGhvdXNhbmQgZGVtb25zIGFuZCBoaXMgc3RhbHdhcnQgY29tcGFuaW9uLiA8YnIgLz4NCjxiciAvPg0KVGhlIGdhbWXigJlzIGFmb290IG9uY2UgbW9yZSBhcyB0aGUgbG9uZy1zdWZmZXJpbmcgRHIuIEpvaG4gV2F0c29uIGFuZCBhIHBhcnRpYWxseS1kZWNvbXBvc2VkIFdhcmxvY2sgSG9sbWVzICh0aG91Z2ggaGXigJlzIGdldHRpbmcgYmV0dGVyKSBmYWNlIG9mZiBhZ2FpbnN0IE1vcmlhcnR54oCZcyBnYW5nLCB0aGUgUGlua2VydG9ucywgZmxlc2gtZWF0aW5nIGhvcnNlcywgYSBwYXJsaWFtZW50IG9mIGltcHMsIGJvcmVkb20sIFN1cnJleSwgYSBzdWNjdWJ1cywgYW4gb3Zlcmx5LUNhbmFkaWFuIGFyaXN0b2NyYXQsIGEgdHJpY3ljbGUtZmlnaHQgdG8gdGhlIGRlYXRoIGFuZCB0aGUgZHJlYWRlZCBQdW1wY3Jvdy4gT2gsIGFuZCBhIGhlbGwtaG91bmQsIG9uZSBhc3N1bWVzLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgwqkgMjAxNyBHYWJyaWVsIFN0ZXBoZW4gRGVubmluZy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gUmVjb3JkZWQgd2l0aCBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3IuIOKElyAyMDE3IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1dBUkxPQ0tIT0xNRVMwMi5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9XQVJMT0NLSE9MTUVTMDIubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTM1NjItMTIwMjAwMTA5MSI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iV0FSTE9DS0hPTE1FUzAzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlYyRnliRzlqYXlCSWIyeHRaWE1nTXpvZ1RYa2dSM0poZG1VZ1VtbDBkV0ZzIgogICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LmdyYXBoaWNhdWRpby5uZXQvbWVkaWEvY2F0YWxvZy9wcm9kdWN0L2NhY2hlL2NlNjkyMzk0YmMzMWRiZTQxN2Y5ZDA0ZWI2NzgwMjM4L3cvYS93YXJsb2NrMDMuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJXYXJsb2NrJiN4MjA7SG9sbWVzJiN4MjA7MyYjeDNBOyYjeDIwO015JiN4MjA7R3JhdmUmI3gyMDtSaXR1YWwiLz48L3NwYW4+Cjwvc3Bhbj4KPHN0eWxlPi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zNTYyLTEyMDIwMDEwOTEgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zNTYyLTEyMDIwMDEwOTEgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIgewogICAgcGFkZGluZy1ib3R0b206IDEwMCU7Cn08L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dCYjeDJGO2phdmFzY3JpcHQiPnByb2RJbWFnZUNvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzU2Mi0xMjAyMDAxMDkxIik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1tpXS5zdHlsZS53aWR0aCA9ICIyMDBweCI7Cn0KcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgKICAgICIucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzU2Mi0xMjAyMDAxMDkxICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5XYXJsb2NrIEhvbG1lczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIj4zIDo8L3NwYW4+ICAgICAgICAgICAgICAgIE15IEdyYXZlIFJpdHVhbCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgRy5TLiBEZW5uaW5nPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gU2VwIDE3LCAyMDE4ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDkgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+IklmIHlvdSBldmVyIHdvbmRlcmVkIGhvdyBtdWNoIGJldHRlciBTaGVybG9jayB3b3VsZCBiZSBpZiBwZW9wbGUgY291bGQgaHVybCBoZWxsZmlyZSBhdCBlYWNoIG90aGVyLCB3ZWxsIHRoaXMgb25lIGlzIGZvciB5b3UuIiBTdGFyYnVyc3QgTWFnYXppbmUgb24gQSBTdHVkeSBpbiBCcmltc3RvbmU8YnIgLz4NCjxiciAvPg0KQXMgdGhleSBibHVuZGVyIHRvd2FyZHMgZG9vbSwgV2FybG9jayBIb2xtZXMgYW5kIERyLiBKb2huIFdhdHNvbiBmaW5kIHRoZW1zZWx2ZXMgaW5jb252ZW5pZW5jZWQgYnkgYSB2YXJpZXR5IG9mIGVsZHJpdGNoIGJlaW5ncy4gQ2hyaXN0bWFzIGJyaW5ncyBhIGdvb3NlIHRoYXQgZG9lc24ndCBsZXQgYmVpbmcgY29va2VkIHNsb3cgaXQgZG93bjsgdGhleSBtZWV0IGFuIGVsZWN0cmljaXR5IGRlbW9uLCBkaXNjb3ZlciB3aHkgYmVpbmcgYSByZWRoZWFkIGlzIGV2ZW4gdHJpY2tlciB0aGFuIG9uZSBtaWdodCBpbWFnaW5lLCBhbmQgSG9sbWVzIGF0dGVtcHRzIGFuIElyaXNoIGFjY2VudC4gQW5kLCBuYXR1cmFsbHksIE1vcmlhcnR5IGlzIGhhbmdpbmcgYXJvdW5kLi4uIGluIHNvbWUgZm9ybSBvciBvdGhlci4gICAgICAgIDwvZGl2PgogICA8L2Rpdj4KCjxkaXYgY2xhc3M9InByb2R1Y3QtY29weXJpZ2h0Ij4KICAgIMKpIDIwMTggR2FicmllbCBTdGVwaGVuIERlbm5pbmcuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFJlY29yZGVkIHdpdGggcGVybWlzc2lvbiBvZiB0aGUgYXV0aG9yLiDihJcgMjAxOCBUaGUgQ3V0dGluZyBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtZWRpYS1wbGF5ZXIiPgogICAgICAgIDxhdWRpbyBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3R5bGU9IndpZHRoOiAxMDAlOyIgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9XQVJMT0NLSE9MTUVTMDMubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvV0FSTE9DS0hPTE1FUzAzLm1wMyI+ZG93bmxvYWQgdGhlIGF1ZGlvIHNhbXBsZTwvYT4uPC9wPgogICAgICAgIDwvYXVkaW8+CiAgICA8L2Rpdj4KIAoKPC9kaXY+
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUwOTQtMTU5NDgwMTk0OCI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iV0FSTE9DS0hPTE1FUzA0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlYyRnliRzlqYXlCSWIyeHRaWE1nTkRvZ1ZHaGxJRk5wWjI0Z2IyWWdUbWx1WlE9PSIKICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5ncmFwaGljYXVkaW8ubmV0L21lZGlhL2NhdGFsb2cvcHJvZHVjdC9jYWNoZS9jZTY5MjM5NGJjMzFkYmU0MTdmOWQwNGViNjc4MDIzOC93L2Evd2FybG9jazA0LmpwZyIKICAgICAgICAgICAgbG9hZGluZz0ibGF6eSIKICAgICAgICAgICAgd2lkdGg9IjIwMCIKICAgICAgICAgICAgaGVpZ2h0PSIyMDAiCiAgICAgICAgICAgIGFsdD0iV2FybG9jayYjeDIwO0hvbG1lcyYjeDIwOzQmI3gzQTsmI3gyMDtUaGUmI3gyMDtTaWduJiN4MjA7b2YmI3gyMDtOaW5lIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItNTA5NC0xNTk0ODAxOTQ4IHsKICAgIHdpZHRoOiAyMDBweDsKfQoucHJvZHVjdC1pbWFnZS1jb250YWluZXItNTA5NC0xNTk0ODAxOTQ4IHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHsKICAgIHBhZGRpbmctYm90dG9tOiAxMDAlOwp9PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQmI3gyRjtqYXZhc2NyaXB0Ij5wcm9kSW1hZ2VDb250YWluZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUwOTQtMTU5NDgwMTk0OCIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTUwOTQtMTU5NDgwMTk0OCAgc3Bhbi5wcm9kdWN0LWltYWdlLXdyYXBwZXIiCik7CmZvciAodmFyIGkgPSAwOyBpIDwgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnNbaV0uc3R5bGUucGFkZGluZ0JvdHRvbSA9ICIxMDAlIjsKfTwvc2NyaXB0PjwvZGl2PgoKPGgxIGNsYXNzPSJwcm9kdWN0LW5hbWUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXJpZXMtbmFtZSI+V2FybG9jayBIb2xtZXM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcGlzb2RlLW5hbWUiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciI+NCA6PC9zcGFuPiAgICAgICAgICAgICAgICBUaGUgU2lnbiBvZiBOaW5lICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvaDE+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWF1dGhvciI+CiAgICBieSBHLlMuIERlbm5pbmc8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtaW5pLWF0dHJpYnV0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtcmVsZWFzZWRhdGUiPgogICAgICAgICAgICAgICAgPGxhYmVsPlJlbGVhc2UgRGF0ZTo8L2xhYmVsPiBGZWIgMTMsIDIwMjAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJ1bm5pbmd0aW1lIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5BcHByb3hpbWF0ZSBSdW5uaW5nIFRpbWU6PC9sYWJlbD4gMTAgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+V2FybG9jayBIb2xtZXMgbWF5IGhhdmUgZGVtb25zIGluIGhpcyBoZWFkLCBidXQgbm93IERyLiBKb2huIFdhdHNvbiBoYXMgYSBtdW1teSBpbiBoaXMgYmxvb2RzdHJlYW0uIFNwZWNpZmljYWxseSB0aGF0IG9mIHRoZSBzb3JjZXJlciBYYW50aGFyYXhlcywgd2hvIHdoZW4gc2hyZWRkZWQgYW5kIGRpc3NvbHZlZCBpbiBhbiA4JSBzb2x1dGlvbiwgcmVzdWx0cyBpbiBzb21lIGV4dHJlbWVseSBvZGQgYnV0IHVzZWZ1bCBwcm9waGV0aWMgZHJlYW1zLiBUaGVyZSdzIGFsc28gdGhlIHNtYWxsIG1hdHRlciBvZiBXYXRzb24gZmFsbGluZyBmb3IgeWV0IGFub3RoZXIgZGFtc2VsLWR1LWpvdXIsIGFuZCBXYXJsb2NrIGRlY2lkaW5nIHRoYXQgaGlzIGNvbXBhbmlvbiBuZWVkcyBzb21lIGRvbWVzdGljIGJsaXNzLi4uICAgICAgICA8L2Rpdj4KICAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvcHlyaWdodCI+CiAgICDCqSAyMDE5IEdhYnJpZWwgU3RlcGhlbiBEZW5uaW5nLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBSZWNvcmRlZCB3aXRoIHBlcm1pc3Npb24gb2YgdGhlIGF1dGhvci4g4oSXIDIwMjAgVGhlIEN1dHRpbmcgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWVkaWEtcGxheWVyIj4KICAgICAgICA8YXVkaW8gY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHN0eWxlPSJ3aWR0aDogMTAwJTsiIHNyYz0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvV0FSTE9DS0hPTE1FUzA0Lm1wMyIgdHlwZT0iYXVkaW8vbXBlZyI+CiAgICAgICAgPCEtLSBmYWxsYmFjayBmb3Igbm9uIHN1cHBvcnRpbmcgYnJvd3NlcnMgZ29lcyBoZXJlIC0tPgogICAgICAgIDxwPllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1LiBZb3UgY2FuIDxhIGhyZWY9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1dBUkxPQ0tIT0xNRVMwNC5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTY1MTItMTM5NDk5MjY4NiI+CiAgICA8c3BhbiBjbGFzcz0icHJvZHVjdC1pbWFnZS13cmFwcGVyIj4KICAgICAgICA8aW1nIGNsYXNzPSJwcm9kdWN0LWltYWdlLXBob3RvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LXNrdT0iV0FSTE9DS0hPTE1FUzA1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlYyRnliRzlqYXlCSWIyeHRaWE1nTlRvZ1ZHaGxJRVpwYm1Gc2FYUjVJRkJ5YjJKc1pXMD0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvdy9hL3dhcmxvY2tfaG9sbWVzXzVfdGhlX2ZpbmFsaXR5X3Byb2JsZW0uanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJXYXJsb2NrJiN4MjA7SG9sbWVzJiN4MjA7NSYjeDNBOyYjeDIwO1RoZSYjeDIwO0ZpbmFsaXR5JiN4MjA7UHJvYmxlbSIvPjwvc3Bhbj4KPC9zcGFuPgo8c3R5bGU+LnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTY1MTItMTM5NDk5MjY4NiB7CiAgICB3aWR0aDogMjAwcHg7Cn0KLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTY1MTItMTM5NDk5MjY4NiBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci02NTEyLTEzOTQ5OTI2ODYiKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzLmxlbmd0aDsgaSsrKSB7CiAgICBwcm9kSW1hZ2VDb250YWluZXJzW2ldLnN0eWxlLndpZHRoID0gIjIwMHB4IjsKfQpwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKAogICAgIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci02NTEyLTEzOTQ5OTI2ODYgIHNwYW4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIgopOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycy5sZW5ndGg7IGkrKykgewogICAgcHJvZEltYWdlQ29udGFpbmVyc1dyYXBwZXJzW2ldLnN0eWxlLnBhZGRpbmdCb3R0b20gPSAiMTAwJSI7Cn08L3NjcmlwdD48L2Rpdj4KCjxoMSBjbGFzcz0icHJvZHVjdC1uYW1lIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VyaWVzLW5hbWUiPldhcmxvY2sgSG9sbWVzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXBpc29kZS1uYW1lIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiPjUgOjwvc3Bhbj4gICAgICAgICAgICAgICAgVGhlIEZpbmFsaXR5IFByb2JsZW0gICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9oMT4KCjxkaXYgY2xhc3M9InByb2R1Y3QtYXV0aG9yIj4KICAgIGJ5IEcuUy4gRGVubmluZzwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1pbmktYXR0cmlidXRlcyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1yZWxlYXNlZGF0ZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UmVsZWFzZSBEYXRlOjwvbGFiZWw+IEFwciA0LCAyMDIyICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDEwIEhvdXJzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtY29udGVudHJhdGluZyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+Q29udGVudCBSYXRpbmc6PC9sYWJlbD4gQWdlcyAxMysgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICA8ZGl2IGNsYXNzPSJzdGQiPlRoZSBmYW1vdXMgZHVvIGhhcyBiZWVuIHNwbGl0ISBXYXRzb24gaGFzIGJlZW4gYmFuaXNoZWQgZnJvbSBIb2xtZXMncyBjb21wYW55LiBEZXNwaXRlIHRoZSBpbnRlcmZlcmVuY2Ugb2YgaGlzIGhvcnJpYmxlIHdpZmUsIE1hcnksIFdhdHNvbiB0aXJlbGVzc2x5IGluc2ludWF0ZXMgaGltc2VsZiBpbnRvIGV2ZXJ5IG1hZ2ljYWwgYWR2ZW50dXJlIGhlIGNhbi4gPGJyIC8+DQo8YnIgLz4NClRvZ2V0aGVyLCBoZSBhbmQgSG9sbWVzIGZhY2UgYSBtYW4gd2l0aCBhIHR3aXN0ZWQuLi4gZXZlcnl0aGluZywgc29tZSB2ZXJ5IHF1ZXN0aW9uYWJsZSBqdWljZS1kcmlua2luZyBHZXJtYW5zLCBHYXJyaWRlYiB0aGUgRGV2b3VyZXIgYW5kIHRoZSBlc3RpbWFibGUgSXJlbmUgQWRsZXIuIFlldCwgbm90aGluZyBjYW4gcHJlcGFyZSB0aGVtIGZvciBNb3JpYXJ0eSdzIG5ldyBmb3JtIGFuZCB0aGUgdGVycmlibGUgbW9tZW50IHRoZXkgbXVzdCBmYWNlIHRoZWlyIEZpbmFsaXR5IFByb2JsZW0gYXQgdGhlIGVkZ2Ugb2YgdGhlIFJlaWNoZW5iYWNoIEZhbGxzLiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgwqkgMjAyMCBHYWJyaWVsIFN0ZXBoZW4gRGVubmluZy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gUmVjb3JkZWQgd2l0aCBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3IuIOKElyAyMDIyIEdyYXBoaWMgQXVkaW8gTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1dBUkxPQ0tIT0xNRVMwNS5tcDMiIHR5cGU9ImF1ZGlvL21wZWciPgogICAgICAgIDwhLS0gZmFsbGJhY2sgZm9yIG5vbiBzdXBwb3J0aW5nIGJyb3dzZXJzIGdvZXMgaGVyZSAtLT4KICAgICAgICA8cD5Zb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBIVE1MNS4gWW91IGNhbiA8YSBocmVmPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ3JhcGhpY2F1ZGlvc2FtcGxlcy9XQVJMT0NLSE9MTUVTMDUubXAzIj5kb3dubG9hZCB0aGUgYXVkaW8gc2FtcGxlPC9hPi48L3A+CiAgICAgICAgPC9hdWRpbz4KICAgIDwvZGl2PgogCgo8L2Rpdj4=
-
PGRpdiBjbGFzcz0iZ3JhcGhpY2F1ZGlvLWdyaWQtcHJvZHVjdC12aWV3Ij4KCjxkaXYgY2xhc3M9InByb2R1Y3QtbWVkaWEiPgogICAgPHNwYW4gY2xhc3M9InByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyMzktNjM1Nzc3NjI5Ij4KICAgIDxzcGFuIGNsYXNzPSJwcm9kdWN0LWltYWdlLXdyYXBwZXIiPgogICAgICAgIDxpbWcgY2xhc3M9InByb2R1Y3QtaW1hZ2UtcGhvdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXByb2R1Y3Qtc2t1PSJXQVJMT0NLSE9MTUVTUkFXIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5hbWU9IlYyRnliRzlqYXlCSWIyeHRaWE02SUZSb1pTQlNaV2xuWVhSbGQyRjVJSFJ2SUVGdWIzUm9aWElnVjI5eWJHUT0iCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuZ3JhcGhpY2F1ZGlvLm5ldC9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvY2FjaGUvY2U2OTIzOTRiYzMxZGJlNDE3ZjlkMDRlYjY3ODAyMzgvdy9hL3dhcmxvY2tfaG9sbWVzX3RoZV9yZWlnYXRld2F5X3RvX2Fub3RoZXJfd29ybGQuanBnIgogICAgICAgICAgICBsb2FkaW5nPSJsYXp5IgogICAgICAgICAgICB3aWR0aD0iMjAwIgogICAgICAgICAgICBoZWlnaHQ9IjIwMCIKICAgICAgICAgICAgYWx0PSJXYXJsb2NrJiN4MjA7SG9sbWVzJiN4M0E7JiN4MjA7VGhlJiN4MjA7UmVpZ2F0ZXdheSYjeDIwO3RvJiN4MjA7QW5vdGhlciYjeDIwO1dvcmxkIi8+PC9zcGFuPgo8L3NwYW4+CjxzdHlsZT4ucHJvZHVjdC1pbWFnZS1jb250YWluZXItMzIzOS02MzU3Nzc2MjkgewogICAgd2lkdGg6IDIwMHB4Owp9Ci5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zMjM5LTYzNTc3NzYyOSBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7CiAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTsKfTwvc3R5bGU+PHNjcmlwdCB0eXBlPSJ0ZXh0JiN4MkY7amF2YXNjcmlwdCI+cHJvZEltYWdlQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lci0zMjM5LTYzNTc3NzYyOSIpOwpmb3IgKHZhciBpID0gMDsgaSA8IHByb2RJbWFnZUNvbnRhaW5lcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNbaV0uc3R5bGUud2lkdGggPSAiMjAwcHgiOwp9CnByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoCiAgICAiLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyLTMyMzktNjM1Nzc3NjI5ICBzcGFuLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciIKKTsKZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kSW1hZ2VDb250YWluZXJzV3JhcHBlcnMubGVuZ3RoOyBpKyspIHsKICAgIHByb2RJbWFnZUNvbnRhaW5lcnNXcmFwcGVyc1tpXS5zdHlsZS5wYWRkaW5nQm90dG9tID0gIjEwMCUiOwp9PC9zY3JpcHQ+PC9kaXY+Cgo8aDEgY2xhc3M9InByb2R1Y3QtbmFtZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlcmllcy1uYW1lIj5XYXJsb2NrIEhvbG1lczwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVwaXNvZGUtbmFtZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIFJlaWdhdGV3YXkgdG8gQW5vdGhlciBXb3JsZCAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2gxPgoKPGRpdiBjbGFzcz0icHJvZHVjdC1hdXRob3IiPgogICAgYnkgRy5TLiBEZW5uaW5nPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibWluaS1hdHRyaWJ1dGVzIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXJlbGVhc2VkYXRlIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5SZWxlYXNlIERhdGU6PC9sYWJlbD4gT2N0IDE4LCAyMDE3ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ydW5uaW5ndGltZSI+CiAgICAgICAgICAgICAgICA8bGFiZWw+QXBwcm94aW1hdGUgUnVubmluZyBUaW1lOjwvbGFiZWw+IDEgSG91cnMKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50cmF0aW5nIj4KICAgICAgICAgICAgICAgIDxsYWJlbD5Db250ZW50IFJhdGluZzo8L2xhYmVsPiBBZ2VzIDEzKyAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgIDxkaXYgY2xhc3M9InN0ZCI+VGhlIFJlaWdhdGV3YXkgdG8gQW5vdGhlciBXb3JsZCwgaXMgYW4gYWR2ZW50dXJlIGZyb20gdGhlIHNlY29uZCBib29rIGluIHRoZSBXYXJsb2NrIEhvbG1lcyBzZXJpZXMsIFRoZSBIZWxsLUhvdW5kIG9mIHRoZSBCYXNrZXJ2aWxsZXMgYnkgYXV0aG9yIEcuUy4gRGVubmluZyBhbmQgZm9sbG93cyB0aGUgZXZlbnRzIG9mIHRoZSBmaXJzdCBib29rLCBBIFN0dWR5IGluIEJyaW1zdG9uZS48YnIgLz4NCjxiciAvPg0KSnVzdCBsaWtlIHRoZSBkZXRlY3RpdmUgb2YgdGhlIHNhbWUgbGFzdCBuYW1lIFdhcmxvY2sgc29sdmVzIGNyaW1lcywgYnV0IGluc3RlYWQgb2YgdXNpbmcgaGlzIHBvd2VycyBvZiBkZWR1Y3Rpb24sIGhlIHVzZXMgcG93ZXJzIG9mIGEgbW9yZSBtYWdpY2FsIG5hdHVyZS4gV2l0aCB0aGUgaGVscCBvZiBoaXMgZXZlciByZXNvdXJjZWZ1bCBhbmQgdHJ1c3RlZCBjb21wYW5pb24sIERyLiBXYXRzb24sIEhvbG1lcyBzb2x2ZXMgc29tZSBvZiB0aGUgb2RkZXN0IGFuZCBzdXBlcm5hdHVyYWwgY2FzZXMgaW4gRW5nbGFuZC4gPGJyIC8+DQo8YnIgLz4NCkhhdmluZyByZWNlbnRseSByZXR1cm5lZCBmcm9tIHRoZSBkZWFkLCBXYXJsb2NrIG5lZWRzIHNvbWUgc2VyaW91cyByZWN1cGVyYXRpb24gdGltZSwgc28gaGUgY2FuIGFwcGVhciBhIGxpdHRsZSBsZXNzIGNvcnBzZS1saWtlLiBXYXRzb27igJlzIG9sZCBjb21tYW5kaW5nIG9mZmljZXIgb2ZmZXJzIHVwIGFuIGlkZWFsIGNvdW50cnkgcmV0cmVhdCBpbiB0aGUgdG93biBvZiBSZWlnYXRlLCB3aGVyZSBhcHBhcmVudGx5IG5vdGhpbmcgZXZlciBoYXBwZW5zLCB1bnRpbCB0aGVyZSBpcyBhIG11cmRlciBtb3N0IGZvdWwuPGJyIC8+DQo8YnIgLz4NCiogVGhpcyBzaG9ydCBzdG9yeSB3YXMgbm90IGluY2x1ZGVkIGluIHRoZSBUaGUgSGVsbC1Ib3VuZCBvZiB0aGUgQmFza2VydmlsbGVzIERvd25sb2FkIG9yIENELiAgICAgICAgPC9kaXY+CiAgIDwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHVjdC1jb3B5cmlnaHQiPgogICAgwqkgMjAxNyBHYWJyaWVsIFN0ZXBoZW4gRGVubmluZy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gUmVjb3JkZWQgd2l0aCBwZXJtaXNzaW9uIG9mIHRoZSBhdXRob3IuIOKElyAyMDE3IFRoZSBDdXR0aW5nIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1lZGlhLXBsYXllciI+CiAgICAgICAgPGF1ZGlvIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzdHlsZT0id2lkdGg6IDEwMCU7IiBzcmM9Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9ncmFwaGljYXVkaW9zYW1wbGVzL1dBUkxPQ0tIT0xNRVNSQVcubXAzIiB0eXBlPSJhdWRpby9tcGVnIj4KICAgICAgICA8IS0tIGZhbGxiYWNrIGZvciBub24gc3VwcG9ydGluZyBicm93c2VycyBnb2VzIGhlcmUgLS0+CiAgICAgICAgPHA+WW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUuIFlvdSBjYW4gPGEgaHJlZj0iaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2dyYXBoaWNhdWRpb3NhbXBsZXMvV0FSTE9DS0hPTE1FU1JBVy5tcDMiPmRvd25sb2FkIHRoZSBhdWRpbyBzYW1wbGU8L2E+LjwvcD4KICAgICAgICA8L2F1ZGlvPgogICAgPC9kaXY+CiAKCjwvZGl2Pg==