A/MNCk5crFFjAAAAAAAAAAAYAAAAQAAAAHNNAwAAZAAAWgAAZAEAWgEAZAIAWgIAZAMAZAQAZAUAZAYAZAcAZAgAZAkAZAoAZAsAZAwAZA0AZA4AZA8AZBAAZBEAZBIAZBMAZBQAZBUAZBYAZBcAZBgAZBkAZBoAZxgAWgMAZBsAZBwAbAQAWgQAZBsAZB0AbAQAbQUAWgUAbQYAWgYAbQcAWgcAAWUEAGoIAGQeAGsAAHKdAGUJAG4DAGUKAFoLAGQfAIQAAFoMAGUKAGQgAIQBAFoNAGUKAGUOAGQhAIQCAFoPAGQiAIQAAFoQAGUKAGQjAIQBAFoRAGUKAGQkAIQBAFoSAGQlAGQmAGQnAIQCAFoTAGQoAIQAAFoUAGUJAGQpAIQBAFoVAGQqAIQAAFoWAGQrAIQAAFoXAGQsAIQAAFoYAGQtAIQAAFoZAGQuAIQAAFoaAGUOAGQvAIQBAFobAGQVAGUcAGYBAGQwAIQAAIMAAFlaHQBkMQBlBABqHgBmAQBkMgCEAACDAABZWh4AZAMAZR4AZgEAZDMAhAAAgwAAWVofAGQEAGUeAGYBAGQ0AIQAAIMAAFlaIABkBgBlHgBlBABqIQBmAgBkNQCEAACDAABZWiEAZAUAZSEAZgEAZDYAhAAAgwAAWVoiAGQHAGUeAGYBAGQ3AIQAAIMAAFlaIwBkCABlHgBmAQBkOACEAACDAABZWiQAZAkAZR4AZgEAZDkAhAAAgwAAWVolAGUlAFomAGQLAGUeAGYBAGQ6AIQAAIMAAFlaJwBkDABlHgBmAQBkOwCEAACDAABZWigAZA0AZR4AZQQAaikAZgIAZDwAhAAAgwAAWVoqAGUqAFopAGQPAGUeAGYBAGQ9AIQAAIMAAFlaKwBkEABlHgBmAQBkPgCEAACDAABZWiwAZBEAZR4AZQQAai0AZgIAZD8AhAAAgwAAWVotAGQSAGUeAGUEAGouAGYCAGRAAIQAAIMAAFlaLgBkEwBlHgBmAQBkQQCEAACDAABZWi8AZBQAZR4AZgEAZEIAhAAAgwAAWVowAGQWAGUeAGUEAGoxAGUEAGoyAGYDAGRDAIQAAIMAAFlaMwBkFwBlIwBlHABmAgBkRACEAACDAABZWjQAZBgAZScAZgEAZEUAhAAAgwAAWVo1AGQcAFMoRgAAAHPmAQAAVHRrIHdyYXBwZXIuCgpUaGlzIG1vZHVsZSBwcm92aWRlcyBjbGFzc2VzIHRvIGFsbG93IHVzaW5nIFRrIHRoZW1lZCB3aWRnZXQgc2V0LgoKVHRrIGlzIGJhc2VkIG9uIGEgcmV2aXNlZCBhbmQgZW5oYW5jZWQgdmVyc2lvbiBvZgpUSVAgIzQ4IChodHRwOi8vdGlwLnRjbC50ay80OCkgc3BlY2lmaWVkIHN0eWxlIGVuZ2luZS4KCkl0cyBiYXNpYyBpZGVhIGlzIHRvIHNlcGFyYXRlLCB0byB0aGUgZXh0ZW50IHBvc3NpYmxlLCB0aGUgY29kZQppbXBsZW1lbnRpbmcgYSB3aWRnZXQncyBiZWhhdmlvciBmcm9tIHRoZSBjb2RlIGltcGxlbWVudGluZyBpdHMKYXBwZWFyYW5jZS4gV2lkZ2V0IGNsYXNzIGJpbmRpbmdzIGFyZSBwcmltYXJpbHkgcmVzcG9uc2libGUgZm9yCm1haW50YWluaW5nIHRoZSB3aWRnZXQgc3RhdGUgYW5kIGludm9raW5nIGNhbGxiYWNrcywgYWxsIGFzcGVjdHMKb2YgdGhlIHdpZGdldHMgYXBwZWFyYW5jZSBsaWVzIGF0IFRoZW1lcy4KcwUAAAAwLjMuMXMhAAAAR3VpbGhlcm1lIFBvbG8gPGdncG9sb0BnbWFpbC5jb20+dAYAAABCdXR0b250CwAAAENoZWNrYnV0dG9udAgAAABDb21ib2JveHQFAAAARW50cnl0BQAAAEZyYW1ldAUAAABMYWJlbHQKAAAATGFiZWxmcmFtZXQKAAAATGFiZWxGcmFtZXQKAAAATWVudWJ1dHRvbnQIAAAATm90ZWJvb2t0CwAAAFBhbmVkd2luZG93dAsAAABQYW5lZFdpbmRvd3QLAAAAUHJvZ3Jlc3NiYXJ0CwAAAFJhZGlvYnV0dG9udAUAAABTY2FsZXQJAAAAU2Nyb2xsYmFydAkAAABTZXBhcmF0b3J0CAAAAFNpemVncmlwdAUAAABTdHlsZXQIAAAAVHJlZXZpZXd0DAAAAExhYmVsZWRTY2FsZXQKAAAAT3B0aW9uTWVudXQNAAAAdGNsb2Jqc190b19weXQMAAAAc2V0dXBfbWFzdGVyaf////9OKAMAAAB0CAAAAF9mbGF0dGVudAUAAABfam9pbnQKAAAAX3N0cmluZ2lm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aGF0IHRoZSBsYXlvdXQgZG9lc24ndCBoYXMgdG8KICAgIGJlIGEgbGlzdCBuZWNlc3NhcmlseS4KCiAgICBFLmcuOgogICAgICBbKCJNZW51YnV0dG9uLmJhY2tncm91bmQiLCBOb25lKSwKICAgICAgICgiTWVudWJ1dHRvbi5idXR0b24iLCB7ImNoaWxkcmVuIjoKICAgICAgICAgICBbKCJNZW51YnV0dG9uLmZvY3VzIiwgeyJjaGlsZHJlbiI6CiAgICAgICAgICAgICAgIFsoIk1lbnVidXR0b24ucGFkZGluZyIsIHsiY2hpbGRyZW4iOgogICAgICAgICAgICAgICAgWygiTWVudWJ1dHRvbi5sYWJlbCIsIHsic2lkZSI6ICJsZWZ0IiwgImV4cGFuZCI6IDF9KV0KICAgICAgICAgICAgICAgfSldCiAgICAgICAgICAgfSldCiAgICAgICB9KSwKICAgICAgICgiTWVudWJ1dHRvbi5pbmRpY2F0b3IiLCB7InNpZGUiOiAicmlnaHQifSkKICAgICAgXQoKICAgICAgcmV0dXJuczoKCiAgICAgIE1lbnVidXR0b24uYmFja2dyb3VuZAogICAgICBNZW51YnV0dG9uLmJ1dHRvbiAtY2hpbGRyZW4gewogICAgICAgIE1lbnVidXR0b24uZm9jdXMgLWNoaWxkcmVuIHsKICAgICAgICAgIE1lbnVidXR0b24ucGFkZGluZyAtY2hpbGRyZW4gewogICAgICAgICAgICBNZW51YnV0dG9uLmxhYmVsIC1zaWRlIGxlZnQgLWV4cGFuZCAxCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIE1lbnVidXR0b24uaW5kaWNhdG9yIC1zaWRlIHJpZ2h0UjYAAAB0CAAAAGNoaWxkcmVucwYAAAAlcyVzJXNzAwAAACAlc1I1AAAAcwwAAAAgLWNoaWxkcmVuIHtzAwAAACVzfXMBAAAACigBAAAAUk8AAAAoBQAAAFI4AAAAUjQAAABSIgAAAFIuAAAAdBIAAABfZm9ybWF0X2xheW91dGxpc3QoCgAAAHQGAAAAbGF5b3V0dAYAAABpbmRlbnR0CwAAAGluZGVudF9zaXplUisAAAB0CwAAAGxheW91dF9lbGVtdAQAAABl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IFB5dGhvbgogICAgb2JqZWN0cy50BwAAAF9fbGVuX19pAAAAAFJvAAAAUnAAAABOKAkAAABSLQAAAFJcAAAAUicAAAB0CgAAAGJhc2VzdHJpbmdScQAAAFIvAAAAUnUAAABSWgAAAFKDAAAAKAMAAAB0BQAAAGFkaWN0UjMAAABSPQAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSFgAAAEoBAABzEgAAAAADGQElARwBDwISAg8BDwIOAmMBAAAAAQAAAAIAAABDAAAAc0AAAAB8AABkAgBrCAByPAB0AQBqAgByLQB0AQBqAwBwJwB0AQBqBACDAAB9AABxPAB0BQBkAQCDAQCCAQBuAAB8AABTKAMAAABzBwEAAElmIG1hc3RlciBpcyBub3QgTm9uZSwgaXRzZWxmIGlzIHJldHVybmVkLiBJZiBtYXN0ZXIgaXMgTm9uZSwKICAgIHRoZSBkZWZhdWx0IG1hc3RlciBpcyByZXR1cm5lZCBpZiB0aGVyZSBpcyBvbmUsIG90aGVyd2lzZSBhIG5ldwogICAgbWFzdGVyIGlzIGNyZWF0ZWQgYW5kIHJldHVybmVkLgoKICAgIElmIGl0IGlzIG5vdCBhbGxvd2VkIHRvIHVzZSB0aGUgZGVmYXVsdCByb290IGFuZCBtYXN0ZXIgaXMgTm9uZSwKICAgIFJ1bnRpbWVFcnJvciBpcyByYWlzZWQuc0kAAABObyBtYXN0ZXIgc3BlY2lmaWVkIGFuZCBUa2ludGVyIGlzIGNvbmZpZ3VyZWQgdG8gbm90IHN1cHBvcnQgZGVmYXVsdCByb290TigGAAAAUi8AAAB0BwAAAFRraW50ZXJ0FQAAAF9zdXBwb3J0X2RlZmF1bHRfcm9vdHQNAAAAX2RlZmF1bHRfcm9vdHQCAAAAVGt0DAAAAFJ1bnRpbWVFcnJvcigBAAAAUiQAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5UhcA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c29tZXRoaW5nIGVsc2UpLCBlYWNoIGl0ZW0gc2hvdWxkIGJlCiAgICAgICAgYSB0dXBsZSB3aGVyZSB0aGUgZmlyc3QgaXRlbSBpcyB0aGUgbGF5b3V0IG5hbWUgYW5kIHRoZSBzZWNvbmQgaXRlbQogICAgICAgIHNob3VsZCBoYXZlIHRoZSBmb3JtYXQgZGVzY3JpYmVkIGJlbG93OgoKICAgICAgICBMQVlPVVRTCgogICAgICAgICAgICBBIGxheW91dCBjYW4gY29udGFpbiB0aGUgdmFsdWUgTm9uZSwgaWYgdGFrZXMgbm8gb3B0aW9ucywgb3IKICAgICAgICAgICAgYSBkaWN0IG9mIG9wdGlvbnMgc3BlY2lmeWluZyBob3cgdG8gYXJyYW5nZSB0aGUgZWxlbWVudC4KICAgICAgICAgICAgVGhlIGxheW91dCBtZWNoYW5pc20gdXNlcyBhIHNpbXBsaWZpZWQgdmVyc2lvbiBvZiB0aGUgcGFjawogICAgICAgICAgICBnZW9tZXRyeSBtYW5hZ2VyOiBnaXZlbiBhbiBpbml0aWFsIGNhdml0eSwgZWFjaCBlbGVtZW50IGlzCiAgICAgICAgICAgIGFsbG9jYXRlZCBhIHBhcmNlbC4gVmFsaWQgb3B0aW9ucy92YWx1ZXMgYXJlOgoKICAgICAgICAgICAgICAgIHNpZGU6IHdoaWNoc2lkZQogICAgICAgICAgICAgICAgICAgIFNwZWNpZmllcyB3aGljaCBzaWRlIG9mIHRoZSBjYXZpdHkgdG8gcGxhY2UgdGhlCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDsgb25lIG9mIHRvcCwgcmlnaHQsIGJvdHRvbSBvciBsZWZ0LiBJZgogICAgICAgICAgICAgICAgICAgIG9taXR0ZWQsIHRoZSBlbGVtZW50IG9jY3VwaWVzIHRoZSBlbnRpcmUgY2F2aXR5LgoKICAgICAgICAgICAgICAgIHN0aWNreTogbnN3ZQogICAgICAgICAgICAgICAgICAgIFNwZWNpZmllcyB3aGVyZSB0aGUgZWxlbWVudCBpcyBwbGFjZWQgaW5zaWRlIGl0cwogICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlZCBwYXJjZWwuCgogICAg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AABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHl0DgAAAHRoZW1lX3NldHRpbmdz8AEAAHMEAAAAAAgMAWMBAAAAAQAAAAQAAABDAAAAcxkAAAB8AABqAABqAQB8AABqAgBkAQBkAgCDAwBTKAMAAABzIwAAAFJldHVybnMgYSBsaXN0IG9mIGFsbCBrbm93biB0aGVtZXMuUp8AAABSnAAAACgDAAAAUiAAAABSjwAAAFKQAAAAKAEAAABSjQAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHl0CwAAAHRoZW1lX25hbWVz/AEAAHMCAAAAAAJjAgAAAAIAAAADAAAAQwAAAHMzAAAAfAEAZAMAawgAchwAfAAAagEAagIAZAEAgwEAU3wAAGoBAGoDAGQCAHwBAIMCAAFkAwBTKAQAAABzqAAAAElmIHRoZW1lbmFtZSBpcyBOb25lLCByZXR1cm5zIHRoZSB0aGVtZSBpbiB1c2UsIG90aGVyd2lzZSwgc2V0CiAgICAgICAgdGhlIGN1cnJlbnQgdGhlbWUgdG8gdGhlbWVuYW1lLCByZWZyZXNoZXMgYWxsIHdpZGdldHMgYW5kIGVtaXRzCiAgICAgICAgYSA8PFRoZW1lQ2hhbmdlZD4+IGV2ZW50LnMZAAAAcmV0dXJuICR0dGs6OmN1cnJlbnRUaGVtZXMNAAAAdHRrOjpzZXRUaGVtZU4oBAAAAFIvAAAAUiAAAABSIQAAAFKPAAAAKAIAAABSjQAAAFKgAAAAKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weXQJAAAAdGhlbWVfdXNlAQIAAHMGAAAAAAQMAxAFTigRAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QHAAAAX19kb2NfX1KQAAAAUi8AAABS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AAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSjgAAAGwCAABzAgAAAAAMYwEAAAABAAAAAwAAAEMAAABzFgAAAHwAAGoAAGoBAHwAAGoCAGQBAIMCAFMoAgAAAHNXAQAAVG9nZ2xlcyBiZXR3ZWVuIHRoZSBzZWxlY3RlZCBhbmQgZGVzZWxlY3RlZCBzdGF0ZXMgYW5kCiAgICAgICAgaW52b2tlcyB0aGUgYXNzb2NpYXRlZCBjb21tYW5kLiBJZiB0aGUgd2lkZ2V0IGlzIGN1cnJlbnRseQogICAgICAgIHNlbGVjdGVkLCBzZXRzIHRoZSBvcHRpb24gdmFyaWFibGUgdG8gdGhlIG9mZnZhbHVlIG9wdGlvbgogICAgICAgIGFuZCBkZXNlbGVjdHMgdGhlIHdpZGdldDsgb3RoZXJ3aXNlLCBzZXRzIHRoZSBvcHRpb24gdmFyaWFibGUKICAgICAgICB0byB0aGUgb3B0aW9uIG9udmFsdWUuCgogICAgICAgIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgYXNzb2NpYXRlZCBjb21tYW5kLlK1AAAAKAMAAABSIAAAAFKPAAAAUqwAAAAoAQAAAFKNAAAAKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weVK1AAAAewIAAHMCAAAAAAhOKAYAAABSpgAAAFKnAAAAUqgAAABSLwAAAFKOAAAAUrUAAAAoAAAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSAQAAAGkCAABzBgAAAAYBBgIMD2MAAAAAAAAAAAMAAABCAAAAczgAAABlAABaAQBkAABaAgBkBQBkBQBkAQCEAgBaBABkAgCEAABaBQBkAwCEAABaBgBkBACEAABaBwBSUygGAAAAc2UAAABUdGsgRW50cnkgd2lkZ2V0IGRpc3BsYXlzIGEgb25lLWxpbmUgdGV4dCBzdHJpbmcgYW5kIGFsbG93cyB0aGF0CiAgICBzdHJpbmcgdG8gYmUgZWRpdGVkIGJ5IHRoZSB1c2VyLmMDAAAABAAAAAYAAABLAAAAcyAAAAB0AABqAQB8AAB8AQB8AgBwFQBkAQB8AwCDBAABZAIAUygDAAAAc4UBAABDb25zdHJ1Y3RzIGEgVHRrIEVudHJ5IHdpZGdldCB3aXRoIHRoZSBwYXJlbnQgbWFzdGVyLgoKICAgICAgICBTVEFOREFSRCBPUFRJT05TCgogICAgICAgICAgICBjbGFzcywgY3Vyc29yLCBzdHlsZSwgdGFrZWZvY3VzLCB4c2Nyb2xsY29tbWFuZAoKICAgICAgICBXSURHRVQtU1BFQ0lGSUMgT1BUSU9OUwoKICAgICAgICAgICAgZXhwb3J0c2VsZWN0aW9uLCBpbnZhbGlkY29tbWFuZCwganVzdGlmeSwgc2hvdywgc3RhdGUsCiAgICAgICAgICAgIHRleHR2YXJpYWJsZSwgdmFsaWRhdGUsIHZhbGlkYXRlY29tbWFuZCwgd2lkdGgKCiAgICAgICAgVkFMSURBVElPTiBNT0RFUwoKICAgICAgICAgICAgbm9uZSwga2V5LCBmb2N1cywgZm9jdXNpbiwgZm9jdXNvdXQsIGFsbAogICAgICAgIHMKAAAAdHRrOjplbnRyeU4oAgAAAFKpAAAAUo4AAAAoBAAAAFKNAAAAUiQAAAB0BgAAAHdpZGdldFJHAAAAKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weVKOAAAAigIAAHMCAAAAABBjAgAAAAIAAAAEAAAAQwAAAHMZAAAAfAAAagAAagEAfAAAagIAZAEAfAEAgwMAUygCAAAAc3EAAABSZXR1cm4gYSB0dXBsZSBvZiAoeCwgeSwgd2lkdGgsIGhlaWdodCkgd2hpY2ggZGVzY3JpYmVzIHRoZQogICAgICAgIGJvdW5kaW5nIGJveCBvZiB0aGUgY2hhcmFjdGVyIGdpdmVuIGJ5IGluZGV4LnQEAAAAYmJveCgDAAAAUiAAAABSjwAAAFKsAAAAKAIAAABSjQAAAHQFAAAAaW5kZXgoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5UrcAAACdAgAAcwIAAAAAA2MDAAAAAwAAAAUAAABDAAAAcxwAAAB8AABqAABqAQB8AABqAgBkAQB8AQB8AgCDBABTKAIAAABzeAAAAFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQgYXQgcG9zaXRpb24geCwgeSwgb3IgdGhlCiAgICAgICAgZW1wdHkgc3RyaW5nIGlmIHRoZSBjb29yZGluYXRlcyBhcmUgb3V0c2lkZSB0aGUgd2luZG93LlKrAAAAKAMAAABSIAAAAFKPAAAAUqwAAAAoAwAAAFKNAAAAUq0AAABSrgAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSqwAAAKMCAABzAgAAAAADYwEAAAABAAAABAAAAEMAAABzHAAAAHQAAHwAAGoBAGoCAHwAAGoDAGQBAIMCAIMBAFMoAgAAAHPJAAAARm9yY2UgcmV2YWxpZGF0aW9uLCBpbmRlcGVuZGVudCBvZiB0aGUgY29uZGl0aW9ucyBzcGVjaWZpZWQKICAgICAgICBieSB0aGUgdmFsaWRhdGUgb3B0aW9uLiBSZXR1cm5zIEZhbHNlIGlmIHZhbGlkYXRpb24gZmFpbHMsIFRydWUKICAgICAgICBpZiBpdCBzdWNjZWVkcy4gU2V0cyBvciBjbGVhcnMgdGhlIGludmFsaWQgc3RhdGUgYWNjb3JkaW5nbHkudAgAAAB2YWxpZGF0ZSgEAAAAUrAAAABSIAAAAFKPAAAAUqwAAAAoAQAAAFKNAAAAKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRr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REFSRCBPUFRJT05TCgogICAgICAgICAgICBjbGFzcywgY29tcG91bmQsIGN1cnNvciwgaW1hZ2UsIHN0eWxlLCB0YWtlZm9jdXMsIHRleHQsCiAgICAgICAgICAgIHRleHR2YXJpYWJsZSwgdW5kZXJsaW5lLCB3aWR0aAoKICAgICAgICBXSURHRVQtU1BFQ0lGSUMgT1BUSU9OUwoKICAgICAgICAgICAgYW5jaG9yLCBiYWNrZ3JvdW5kLCBmb250LCBmb3JlZ3JvdW5kLCBqdXN0aWZ5LCBwYWRkaW5nLAogICAgICAgICAgICByZWxpZWYsIHRleHQsIHdyYXBsZW5ndGgKICAgICAgICBzCgAAAHR0azo6bGFiZWxOKAIAAABSqQAAAFKOAAAAKAMAAABSjQAAAFIkAAAAUkcAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5Uo4AAADlAgAAcwIAAAAADU4oBQAAAFKmAAAAUqcAAABSqAAAAFIvAAAAUo4AAAAoAAAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSBQAAAOICAABzBAAAAAYBBgJjAAAAAAAAAAACAAAAQgAAAHMaAAAAZQAAWgEAZAAAWgIAZAIAZAEAhAEAWgQAUlMoAwAAAHOgAAAAVHRrIExhYmVsZnJhbWUgd2lkZ2V0IGlzIGEgY29udGFpbmVyIHVzZWQgdG8gZ3JvdXAgb3RoZXIgd2lkZ2V0cwogICAgdG9nZXRoZXIuIEl0IGhhcyBhbiBvcHRpb25hbCBsYWJlbCwgd2hpY2ggbWF5IGJlIGEgcGxhaW4gdGV4dCBzdHJpbmcKICAgIG9yIGFub3RoZXIgd2lkZ2V0LmMCAAAAAwAAAAUAAABLAAAAcxoAAAB0AABqAQB8AAB8AQBkAQB8AgCDBAABZAIAUygDAAAAc/kAAABDb25zdHJ1Y3QgYSBUdGsgTGFiZWxmcmFtZSB3aXRoIHBhcmVudCBtYXN0ZXIuCgogICAgICAgIFNUQU5EQVJEIE9QVElPTlMKCiAgICAgICAgICAgIGNsYXNzLCBjdXJzb3IsIHN0eWxlLCB0YWtlZm9jdXMKCiAgICAgICAgV0lER0VULVNQRUNJRklDIE9QVElPTlMKICAgICAgICAgICAgbGFiZWxhbmNob3IsIHRleHQsIHVuZGVybGluZSwgcGFkZGluZywgbGFiZWx3aWRnZXQsIHdpZHRoLAogICAgICAgICAgICBoZWlnaHQKICAgICAgICBzDwAAAHR0azo6bGFiZWxmcmFtZU4oAgAAAFKpAAAAUo4AAAAoAwAAAFKNAAAAUiQAAABSRwAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSjgAAAPoCAABzAgAAAAALTigFAAAAUqYAAABSpwAAAFKoAAAAUi8AAABSjgAAACgAAAAAKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weVIGAAAA9QIAAHMEAAAABgMGAmMAAAAAAAAAAAIAAABCAAAAcxoAAABlAABaAQBkAABaAgBkAgBkAQCEAQBaBABSUygDAAAAc2IAAABUdGsgTWVudWJ1dHRvbiB3aWRnZXQgZGlzcGxheXMgYSB0ZXh0dWFsIGxhYmVsIGFuZC9vciBpbWFnZSwgYW5kCiAgICBkaXNwbGF5cyBhIG1lbnUgd2hlbiBwcmVzc2VkLmMCAAAAAwAAAAUAAABLAAAAcxoAAAB0AABqAQB8AAB8AQBkAQB8AgCDBAABZAIAUygDAAAAcwYBAABDb25zdHJ1Y3QgYSBUdGsgTWVudWJ1dHRvbiB3aXRoIHBhcmVudCBtYXN0ZXIuCgogICAgICAgIFNUQU5EQVJEIE9QVElPTlMKCiAgICAgICAgICAgIGNsYXNzLCBjb21wb3VuZCwgY3Vyc29yLCBpbWFnZSwgc3RhdGUsIHN0eWxlLCB0YWtlZm9jdXMsCiAgICAgICAgICAgIHRleHQsIHRleHR2YXJpYWJsZSwgdW5kZXJsaW5lLCB3aWR0aAoKICAgICAgICBXSURHRVQtU1BFQ0lGSUMgT1BUSU9OUwoKICAgICAgICAgICAgZGlyZWN0aW9uLCBtZW51CiAgICAgICAgcw8AAAB0dGs6Om1lbnVidXR0b25OKAIAAABSqQAAAFKOAAAAKAMAAABSjQAAAFIkAAAAUkcAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5Uo4AAAAOAwAAcwIAAAAADE4oBQAAAFKmAAAAUqcAAABSqAAAAFIvAAAAUo4AAAAoAAAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSCAAAAAoDAABzBAAAAAYCBgJjAAAAAAAAAAACAAAAQgAAAHN6AAAAZQAAWgEAZAAAWgIAZAwAZAEAhAEAWgQAZAIAhAAAWgUAZAMAhAAAWgYAZAQAhAAAWgcAZAUAhAAAWggAZAYAhAAAWgkAZAcAhAAAWgoAZAwAZAgAhAEAWgsAZAwAZAkAhAEAWgwAZAoAhAAAWg0AZAsAhAAAWg4AUlMoDQAAAHPQAAAAVHRrIE5vdGVib29rIHdpZGdldCBtYW5hZ2VzIGEgY29sbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCBkaXNwbGF5cwogICAgYSBzaW5nbGUgb25lIGF0IGEgdGltZS4gRWFjaCBjaGlsZCB3aW5kb3cgaXMgYXNzb2NpYXRlZCB3aXRoIGEgdGFiLAogICAgd2hpY2ggdGhlIHVzZXIgbWF5IHNlbGVjdCB0byBjaGFuZ2UgdGhlIGN1cnJlbnRseS1kaXNwbGF5ZWQgd2luZG93LmMCAAAAAwAAAAUAAABLAAAAcxoAAAB0AABqAQB8AAB8AQBkAQB8AgCDBAABZAIAUygDAAAAc1wDAABDb25zdHJ1Y3QgYSBUdGsgTm90ZWJvb2sgd2l0aCBwYXJlbnQgbWFzdGVyLgoKICAgICAgICBTVEFOREFSRCBPUFRJT05TCgogICAgICAgICAgICBjbGFzcywgY3Vyc29yLCBzdHlsZSwgdGFrZWZvY3VzCgogICAgICAgIFdJREdFVC1TUEVDSUZJQyBPUFRJT05TCgogICAgICAgICAgICBoZWlnaHQsIHBhZGRpbmcsIHdpZHRoCgogICAgICAgIFRBQiBPUFRJT05TCgogICAgICAgICAgICBzdGF0ZSwgc3RpY2t5LCBwYWRkaW5nLCB0ZXh0LCBpbWFnZSwgY29tcG91bmQsIHVuZGVybGluZQoKICAgICAgICBUQUIgSURFTlRJRklFUlMgKHRhYl9pZCkKCiAgICAgICAgICAgIFRoZSB0YWJfaWQgYXJndW1lbnQgZm91bmQgaW4gc2V2ZXJhbCBtZXRob2RzIG1heSB0YWtlIGFueSBvZgogICAgICAgICAgICB0aGUgZm9sbG93aW5nIGZvcm1zOgoKICAgICAgICAgICAgICAgICogQW4gaW50ZWdlciBiZXR3ZWVuIHplcm8gYW5kIHRoZSBudW1iZXIgb2YgdGFicwogICAgICAgICAgICAgICAgKiBUaGUgbmFtZSBvZiBhIGNoaWxkIHdpbmRvdwogICAgICAgICAgICAgICAgKiBBIHBvc2l0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiB0aGUgZm9ybSAiQHgseSIsIHdoaWNoCiAgICAgICAgICAgICAgICAgIGRlZmluZXMgdGhlIHRhYgogICAgICAgICAgICAgICAgKiBUaGUgc3RyaW5nICJjdXJyZW50Iiwgd2hpY2ggaWRlbnRpZmllcyB0aGUKICAgICAgICAgICAgICAgICAgY3VycmVudGx5LXNlbGVjdGVkIHRhYgogICAgICAgICAgICAgICAgKiBUaGUgc3RyaW5nICJlbmQiLCB3aGljaCByZXR1cm5zIHRoZSBudW1iZXIgb2YgdGFicyAob25seQogICAgICAgICAgICAgICAgICB2YWxpZCBmb3IgbWV0aG9kIGluZGV4KQogICAgICAgIHMNAAAAdHRrOjpub3RlYm9va04oAgAAAFKpAAAAUo4AAAAoAwAAAFKNAAAAUiQAAABSRwAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0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ci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weVKOAAAA5AMAAHMCAAAAAAtjAgAAAAIAAAAEAAAAQwAAAHMdAAAAfAAAagAAagEAfAAAagIAZAEAfAEAgwMAAWQCAFMoAwAAAHPDAAAAQmVnaW4gYXV0b2luY3JlbWVudCBtb2RlOiBzY2hlZHVsZXMgYSByZWN1cnJpbmcgdGltZXIgZXZlbnQKICAgICAgICB0aGF0IGNhbGxzIG1ldGhvZCBzdGVwIGV2ZXJ5IGludGVydmFsIG1pbGxpc2Vjb25kcy4KCiAgICAgICAgaW50ZXJ2YWwgZGVmYXVsdHMgdG8gNTAgbWlsbGlzZWNvbmRzICgyMCBzdGVwcy9zZWNvbmQpIGlmIG9tbWl0ZWQudAUAAABzdGFydE4oAwAAAFIgAAAAUo8AAABSrAAAACgCAAAAUo0AAAB0CAAAAGludGVydmFsKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weVLLAAAA8gMAAHMCAAAAAAVjAgAAAAIAAAAEAAAAQwAAAHMdAAAAfAAAagAAagEAfAAAagIAZAEAfAEAgwMAAWQCAFMoAwAAAHNSAAAASW5jcmVtZW50cyB0aGUgdmFsdWUgb3B0aW9uIGJ5IGFtb3VudC4KCiAgICAgICAgYW1vdW50IGRlZmF1bHRzIHRvIDEuMCBpZiBvbWl0dGVkLnQEAAAAc3RlcE4oAwAAAFIgAAAAUo8AAABSrAAAACgCAAAAUo0AAAB0BgAAAGFtb3VudCgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSzQAAAPoDAABzAgAAAAAEYwEAAAABAAAAAwAAAEMAAABzGgAAAHwAAGoAAGoBAHwAAGoCAGQBAIMCAAFkAgBTKAMAAABzVgAAAFN0b3AgYXV0b2luY3JlbWVudCBtb2RlOiBj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bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHlSjgAAAF8EAABzAgAAAAALTigFAAAAUqYAAABSpwAAAFKoAAAAUi8AAABSjgAAACgAAAAAKAAAAAAoAAAAAHNSAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvbGliLXRrL3R0ay5weVIQAAAAWwQAAHMEAAAABgIGAmMAAAAAAAAAAAIAAABCAAAAcxoAAABlAABaAQBkAABaAgBkAgBkAQCEAQBaBABSUygDAAAAc2wAAABUdGsgU2l6ZWdyaXAgYWxsb3dzIHRoZSB1c2VyIHRvIHJlc2l6ZSB0aGUgY29udGFpbmluZyB0b3BsZXZlbAogICAgd2luZG93IGJ5IHByZXNzaW5nIGFuZCBkcmFnZ2luZyB0aGUgZ3JpcC5jAgAAAAMAAAAFAAAASwAAAHMaAAAAdAAAagEAfAAAfAEAZAEAfAIAgwQAAWQCAFMoAwAAAHODAAAAQ29uc3RydWN0IGEgVHRrIFNpemVncmlwIHdpdGggcGFyZW50IG1hc3Rlci4KCiAgICAgICAgU1RBTkRBUkQgT1BUSU9OUwoKICAgICAgICAgICAgY2xhc3MsIGN1cnNvciwgc3RhdGUsIHN0eWxlLCB0YWtlZm9jdXMKICAgICAgICBzDQAAAHR0azo6c2l6ZWdyaXBOKAIAAABSqQAAAFKOAAAAKAMAAABSjQAAAFIkAAAAUkcAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5Uo4AAABxBAAAcwIAAAAAB04oBQAAAFKmAAAAUqcAAABSqAAAAFIvAAAAUo4AAAAoAAAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsu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cyBiZWNvbWVzIHRoZSBuZXcgc2VsZWN0aW9uLlK8AAAATigBAAAAUu8AAAAoAgAAAFKNAAAAUjkAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5dA0AAABzZWxlY3Rpb25fc2V0dAUAAHMCAAAAAAJjAgAAAAIAAAADAAAAQwAAAHMUAAAAfAAAagAAZAEAfAEAgwIAAWQCAFMoAwAAAHMbAAAAQWRkIGl0ZW1zIHRvIHRoZSBzZWxlY3Rpb24uUr0AAABOKAEAAABS7wAAACgCAAAAUo0AAABSOQAAACgAAAAAKAAAAABzUgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2xpYi10ay90dGsucHl0DQAAAHNlbGVjdGlvbl9hZGR5BQAAcwIAAAAAAmMCAAAAAgAAAAMAAABDAAAAcxQAAAB8AABqAABkAQB8AQCDAgABZAIAUygDAAAAcyAAAABSZW1vdmUgaXRlbXMgZnJvbSB0aGUgc2VsZWN0aW9uLnQGAAAAcmVtb3ZlTigBAAAAUu8AAAAoAgAAAFKNAAAAUjkAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsvdHRrLnB5dBAAAABzZWxlY3Rpb25fcmVtb3ZlfgUAAHMCAAAAAAJjAgAAAAIAAAADAAAAQwAAAHMUAAAAfAAAagAAZAEAfAEAgwIAAWQCAFMoAwAAAHMxAAAAVG9nZ2xlIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgZWFjaCBpdGVtIGluIGl0ZW1zLnQGAAAAdG9nZ2xlTigBAAAAUu8AAAAoAgAAAFKNAAAAUjkAAAAoAAAAACgAAAAAc1IAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9saWItdGsv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