YQ0NCgAAAABGGnxjtZgAAOMAAAAAAAAAAAAAAAAAAAAABQAAAEAAAABz3gEAAGQAZAFsAG0BWgEBAGQAZAJsAloCZABkAmwDWgNkAGQCbARaBGQAZAJsBVoFZABkAmwGWgZkAGQCbAdaB2QAZANsBW0IWgkBAGQAZARsBW0KWgsBAGQFZAZsDG0NWg1tDloObQ9aD20QWhBtEVoRbRJaEm0TWhNtFFoUAQBkBWQHbBVtFloWbRdaF20YWhhtGVoZbRpaGm0bWhttHFocbR1aHW0eWh5tH1ofbSBaIG0hWiFtIloiAQBkBWQIbCNtJFokAQBkBWQJbCVtJlomAQBkBWQKbCdtKFooAQBkBWQLbCltKloqAQBkBWQMbCttLFosAQBkBWQNbC1tLlouAQBkBWQObC9tMFowAQBkBWQPbDFtMloyAQBkBWQQbDNtNFo0AQBkBWQRbDVtNlo2AQBkBWQSbDdtOFo4AQBkBWQTbDltOlo6AQBkBWQUbDttPFo8bT1aPQEAZAVkFWw7bT5aPwEAZAVkFmw7bUBaQG1BWkEBAGUkakJqQ1pDZQOgRGVFoQFaRmVHgwBaSEcAZBdkGIQAZBhlR4MDWkllAmpKZQJqS2gCWkxHAGQZZBqEAGQaZUllKIMEWk1HAGQbZByEAGQcZU2DA1pOZB1kHoQAWk9kH2QghABaPmQCUwApIekAAAAAKQHaD2Fic29sdXRlX2ltcG9ydE4pAdoFZXJyb3KpAdoHdGltZW91dOkBAAAAKQjaDEJhc2VTU0xFcnJvctoPQnJva2VuUGlwZUVycm9y2g9EdW1teUNvbm5lY3Rpb27aDkhUVFBDb25uZWN0aW9u2g1IVFRQRXhjZXB0aW9u2g9IVFRQU0Nvbm5lY3Rpb27aF1ZlcmlmaWVkSFRUUFNDb25uZWN0aW9u2g5wb3J0X2J5X3NjaGVtZSkN2g9DbG9zZWRQb29sRXJyb3LaDkVtcHR5UG9vbEVycm9y2hJIZWFkZXJQYXJzaW5nRXJyb3LaEEhvc3RDaGFuZ2VkRXJyb3LaFkluc2VjdXJlUmVxdWVzdFdhcm5pbmfaEkxvY2F0aW9uVmFsdWVFcnJvctoNTWF4UmV0cnlFcnJvctoSTmV3Q29ubmVjdGlvbkVycm9y2g1Qcm90b2NvbEVycm9y2gpQcm94eUVycm9y2hBSZWFkVGltZW91dEVycm9y2ghTU0xFcnJvctoMVGltZW91dEVycm9yKQHaA3NpeCkB2gVxdWV1ZSkB2g5SZXF1ZXN0TWV0aG9kcykB2gxIVFRQUmVzcG9uc2UpAdoVaXNfY29ubmVjdGlvbl9kcm9wcGVkKQHaH2Nvbm5lY3Rpb25fcmVxdWlyZXNfaHR0cF90dW5uZWwpAdoJTGlmb1F1ZXVlKQHaEXNldF9maWxlX3Bvc2l0aW9uKQHaFWFzc2VydF9oZWFkZXJfcGFyc2luZykB2gVSZXRyeSkB2hBDZXJ0aWZpY2F0ZUVycm9yKQHaB1RpbWVvdXQpAtoDVXJs2g5fZW5jb2RlX3RhcmdldCkB2g9fbm9ybWFsaXplX2hvc3QpAtoIZ2V0X2hvc3TaCXBhcnNlX3VybGMAAAAAAAAAAAAAAAAAAAAAAwAAAEAAAABzQgAAAGUAWgFkAFoCZAFaA2QCWgRlBVoGZA1kA2QEhAFaB2QFZAaEAFoIZAdkCIQAWglkCWQKhABaCmQLZAyEAFoLZAJTACkO2g5Db25uZWN0aW9uUG9vbGE7AQAACiAgICBCYXNlIGNsYXNzIGZvciBhbGwgY29ubmVjdGlvbiBwb29scywgc3VjaCBhcwogICAgOmNsYXNzOmAuSFRUUENvbm5lY3Rpb25Qb29sYCBhbmQgOmNsYXNzOmAuSFRUUFNDb25uZWN0aW9uUG9vbGAuCgogICAgLi4gbm90ZTo6CiAgICAgICBDb25uZWN0aW9uUG9vbC51cmxvcGVuKCkgZG9lcyBub3Qgbm9ybWFsaXplIG9yIHBlcmNlbnQtZW5jb2RlIHRhcmdldCBVUklzCiAgICAgICB3aGljaCBpcyB1c2VmdWwgaWYgeW91ciB0YXJnZXQgc2VydmVyIGRvZXNuJ3Qgc3VwcG9ydCBwZXJjZW50LWVuY29kZWQKICAgICAgIHRhcmdldCBVUklzLgogICAgTmMDAAAAAAAAAAAAAAADAAAABAAAAEMAAABzMAAAAHwBcwx0AGQBgwGCAXQBfAF8AGoCZAKNAnwAXwN8AaAEoQB8AF8FfAJ8AF8GZABTACkDTnoSTm8gaG9zdCBzcGVjaWZpZWQuqQHaBnNjaGVtZSkHchQAAAByKgAAAHIvAAAA2gRob3N02gVsb3dlctoLX3Byb3h5X2hvc3Ta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CiAgICA6cGFyYW0gdGltZW91dDoKICAgICAgICBTb2NrZXQgdGltZW91dCBpbiBzZWNvbmRzIGZvciBlYWNoIGluZGl2aWR1YWwgY29ubmVjdGlvbi4gVGhpcyBjYW4KICAgICAgICBiZSBhIGZsb2F0IG9yIGludGVnZXIsIHdoaWNoIHNldHMgdGhlIHRpbWVvdXQgZm9yIHRoZSBIVFRQIHJlcXVlc3QsCiAgICAgICAgb3IgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmB1cmxsaWIzLnV0aWwuVGltZW91dGAgd2hpY2ggZ2l2ZXMgeW91IG1vcmUKICAgICAgICBmaW5lLWdyYWluZWQgY29udHJvbCBvdmVyIHJlcXVlc3QgdGltZW91dHMuIEFmdGVyIHRoZSBjb25zdHJ1Y3RvciBoYXMKICAgICAgICBiZWVuIHBhcnNlZCwgdGhpcyBpcyBhbHdheXMgYSBgdXJsbGliMy51dGlsLlRpbWVvdXRgIG9iamVjdC4KCiAgICA6cGFyYW0gbWF4c2l6ZToKICAgICAgICBOdW1iZXIgb2YgY29ubmVjdGlvbnMgdG8gc2F2ZSB0aGF0IGNhbiBiZSByZXVzZWQuIE1vcmUgdGhhbiAxIGlzIHVzZWZ1bAogICAgICAgIGluIG11bHRpdGhyZWFkZWQgc2l0dWF0aW9ucy4gSWYgYGBibG9ja2BgIGlzIHNldCB0byBGYWxzZSwgbW9yZQogICAgICAgIGNvbm5lY3Rpb25zIHdpbGwgYmUgY3JlYXRlZCBidXQgdGhleSB3aWxsIG5vdCBiZSBzYXZlZCBvbmNlIHRoZXkndmUKICAgICAgICBiZWVuIHVzZWQuCgogICAgOnBhcmFtIGJsb2NrOgogICAgICAgIElmIHNldCB0byBUcnVlLCBubyBtb3JlIHRoYW4gYGBtYXhzaXplYGAgY29ubmVjdGlvbnMgd2lsbCBiZSB1c2VkIGF0CiAgICAgICAgYSB0aW1lLiBXaGVuIG5vIGZyZWUgY29ubmVjdGlvbnMgYXJlIGF2YWlsYWJsZSwgdGhlIGNhbGwgd2lsbCBibG9jawogICAgICAgIHVudGlsIGEgY29ubmVjdGlvbiBoYXMgYmVlbiByZWxlYXNlZC4gVGhpcyBpcyBhIHVzZWZ1bCBzaWRlIGVmZmVjdCBmb3IKICAgICAgICBwYXJ0aWN1bGFyIG11bHRpdGhyZWFkZWQgc2l0dWF0aW9ucyB3aGVyZSBvbmUgZG9lcyBub3Qgd2FudCB0byB1c2UgbW9yZQogICAgICAgIHRoYW4gbWF4c2l6ZSBjb25uZWN0aW9ucyBwZXIgaG9zdCB0byBwcmV2ZW50IGZsb29kaW5nLgoKICAgIDpwYXJhbSBoZWFkZXJzOgogICAgICAgIEhlYWRlcnMgdG8gaW5jbHVkZSB3aXRoIGFsbCByZXF1ZXN0cywgdW5sZXNzIG90aGVyIGhlYWRlcnMgYXJlIGdpdmVuCiAgICAgICAgZXhwbGljaXRseS4KCiAgICA6cGFyYW0gcmV0cmllczoKICAgICAgICBSZXRyeSBjb25maWd1cmF0aW9uIHRvIHVzZSBieSBkZWZhdWx0IHdpdGggcmVxdWVzdHMgaW4gdGhpcyBwb29sLgoKICAgIDpwYXJhbSBfcHJveHk6CiAgICAgICAgUGFyc2VkIHByb3h5IFVSTCwgc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBpbnN0ZWFkLCBzZWUKICAgICAgICA6Y2xhc3M6YHVybGxpYjMuUHJveHlNYW5hZ2VyYAoKICAgIDpwYXJhbSBfcHJveHlfaGVhZGVyczoKICAgICAgICBBIGRpY3Rpb25hcnkgd2l0aCBwcm94eSBoZWFkZXJzLCBzaG91bGQgbm90IGJlIHVzZWQgZGlyZWN0bHksCiAgICAgICAgaW5zdGVhZCwgc2VlIDpjbGFzczpgdXJsbGliMy5Qcm94eU1hbmFnZXJgCgogICAgOnBhcmFtIFwqKmNvbm5fa3c6CiAgICAgICAgQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGFyZSB1c2VkIHRvIGNyZWF0ZSBmcmVzaCA6Y2xhc3M6YHVybGxpYjMuY29ubmVjdGlvbi5IVFRQQ29ubmVjdGlvbmAsCiAgICAgICAgOmNsYXNzOmB1cmxsaWIzLmNvbm5lY3Rpb24uSFRUUFNDb25uZWN0aW9uYCBpbnN0YW5jZXMuCiAgICDaBGh0dHBORnIGAAAAYwwAAAAAAAAAAAAAAA4AAAAFAAAASwAAAHPSAAAAdACgAXwAfAF8AqEDAQB0AqABfAB8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CiAgICAgICAgR2V0IGEgY29ubmVjdGlvbiBmcm9tIHRoZSBwb29sIGFuZCBwZXJmb3JtIGFuIEhUVFAgcmVxdWVzdC4gVGhpcyBpcyB0aGUKICAgICAgICBsb3dlc3QgbGV2ZWwgY2FsbCBmb3IgbWFraW5nIGEgcmVxdWVzdCwgc28geW91J2xsIG5lZWQgdG8gc3BlY2lmeSBhbGwKICAgICAgICB0aGUgcmF3IGRldGFpbHMuCgogICAgICAgIC4uIG5vdGU6OgoKICAgICAgICAgICBNb3JlIGNvbW1vbmx5LCBpdCdzIGFwcHJvcHJpYXRlIHRvIHVzZSBhIGNvbnZlbmllbmNlIG1ldGhvZCBwcm92aWRlZAogICAgICAgICAgIGJ5IDpjbGFzczpgLlJlcXVlc3RNZXRob2RzYCwgc3VjaCBhcyA6bWV0aDpgcmVxdWVzdGAuCgogICAgICAgIC4uIG5vdGU6OgoKICAgICAgICAgICBgcmVsZWFzZV9jb25uYCB3aWxsIG9ubHkgYmVoYXZlIGFzIGV4cGVjdGVkIGlmCiAgICAgICAgICAgYHByZWxvYWRfY29udGVudD1GYWxzZWAgYmVjYXVzZSB3ZSB3YW50IHRvIG1ha2UKICAgICAgICAgICBgcHJlbG9hZF9jb250ZW50PUZhbHNlYCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgc29tZWRheSBzb29uIHdpdGhvdXQKICAgICAgICAgICBicmVha2luZyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCiAgICAgICAgOnBhcmFtIG1ldGhvZDoKICAgICAgICAgICAgSFRUUCByZXF1ZXN0IG1ldGhvZCAoc3VjaCBhcyBHRVQsIFBPU1QsIFBVVCwgZXRjLikKCiAgICAgICAgOnBhcmFtIHVybDoKICAgICAgICAgICAgVGhlIFVSTCB0byBwZXJmb3JtIHRoZSByZXF1ZXN0IG9uLgoKICAgICAgICA6cGFyYW0gYm9keToKICAgICAgICAgICAgRGF0YSB0byBzZW5kIGluIHRoZSByZXF1ZXN0IGJvZHksIGVpdGhlciA6Y2xhc3M6YHN0cmAsIDpjbGFzczpgYnl0ZXNgLAogICAgICAgICAgICBhbiBpdGVyYWJsZSBvZiA6Y2xhc3M6YHN0cmAvOmNsYXNzOmBieXRlc2AsIG9yIGEgZmlsZS1saWtlIG9iamVjdC4KCiAgICAgICAgOnBhcmFtIGhlYWRlcnM6CiAgICAgICAgICAgIERpY3Rpb25hcnkgb2YgY3VzdG9tIGhlYWRlcnMgdG8gc2VuZCwgc3VjaCBhcyBVc2VyLUFnZW50LAogICAgICAgICAgICBJZi1Ob25lLU1hdGNoLCBldGMuIElmIE5vbmUsIHBvb2wgaGVhZGVycyBhcmUgdXNlZC4gSWYgcHJvdmlkZWQsCiAgICAgICAgICAgIHRoZXNlIGhlYWRlcnMgY29tcGxldGVseSByZXBsYWNlIGFueSBwb29sLXNwZWNpZmljIGhlYWRlcnMuCgogICAgICAgIDpwYXJhbSByZXRyaWVzOgogICAgICAgICAgICBDb25maWd1cmUgdGhlIG51bWJlciBvZiByZXRyaWVzIHRvIGFsbG93IGJlZm9yZSByYWlzaW5nIGEKICAgICAgICAgICAgOmNsYXNzOmB+dXJsbGliMy5leGNlcHRpb25zLk1heFJldHJ5RXJyb3JgIGV4Y2VwdGlvbi4KCiAgICAgICAgICAgIFBhc3MgYGBOb25lYGAgdG8gcmV0cnkgdW50aWwgeW91IHJlY2VpdmUgYSByZXNwb25zZS4gUGFzcyBhCiAgICAgICAgICAgIDpjbGFzczpgfnVybGxpYjMudXRpbC5yZXRyeS5SZXRyeWAgb2JqZWN0IGZvciBmaW5lLWdyYWluZWQgY29udHJvbAogICAgICAgICAgICBvdmVyIGRpZmZlcmVudCB0eXBlcyBvZiByZXRyaWVzLgogICAgICAgICAgICBQYXNzIGFuIGludGVnZXIgbnVtYmVyIHRvIHJldHJ5IGNvbm5lY3Rpb24gZXJyb3JzIHRoYXQgbWFueSB0aW1lcywKICAgICAgICAgICAgYnV0IG5vIG90aGVyIHR5cGVzIG9mIGVycm9ycy4gUGFzcyB6ZXJvIHRvIG5ldmVyIHJldHJ5LgoKICAgICAgICAgICAgSWYgYGBGYWxzZWBgLCB0aGVuIHJldHJpZXMgYXJlIGRpc2FibGVkIGFuZCBhbnkgZXhjZXB0aW9uIGlzIHJhaXNlZAogICAgICAgICAgICBpbW1lZGlhdGVseS4gQWxzbywgaW5zdGVhZCBvZiByYWlzaW5nIGEgTWF4UmV0cnlFcnJvciBvbiByZWRpcmVjdHMsCiAgICAgICAgICAgIHRoZSByZWRpcmVjdCByZXNwb25zZSB3aWxsIGJlIHJldHVybmVkLgoKICAgICAgICA6dHlwZSByZXRyaWVzOiA6Y2xhc3M6YH51cmxsaWIzLnV0aWwucmV0cnkuUmV0cnlgLCBGYWxzZSwgb3IgYW4gaW50LgoKICAgICAgICA6cGFyYW0gcmVkaXJlY3Q6CiAgICAgICAgICAgIElmIFRydWUsIGF1dG9tYXRpY2FsbHkgaGFuZGxlIHJlZGlyZWN0cyAoc3RhdHVzIGNvZGVzIDMwMSwgMzAyLAogICAgICAgICAgICAzMDMsIDMwNywgMzA4KS4gRWFjaCByZWRpcmVjdCBjb3VudHMgYXMgYSByZXRyeS4gRGlzYWJsaW5nIHJldHJpZXMKICAgICAgICAgICAgd2lsbCBkaXNhYmxlIHJlZGlyZWN0LCB0b28uCgogICAgICAgIDpwYXJhbSBhc3NlcnRfc2FtZV9ob3N0OgogICAgICAgICAgICBJZiBgYFRydWVgYCwgd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGUgaG9zdCBvZiB0aGUgcG9vbCByZXF1ZXN0cyBpcwogICAgICAgICAgICBjb25zaXN0ZW50IGVsc2Ugd2lsbCByYWlzZSBIb3N0Q2hhbmdlZEVycm9yLiBXaGVuIGBgRmFsc2VgYCwgeW91IGNhbgogICAgICAgICAgICB1c2UgdGhlIHBvb2wgb24gYW4gSFRUUCBwcm94eSBhbmQgcmVxdWVzdCBmb3JlaWduIGhvc3RzLgoKICAgICAgICA6cGFyYW0gdGltZW91dDoKICAgICAgICAgICAgSWYgc3BlY2lmaWVkLCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdGltZW91dCBmb3IgdGhpcyBvbmUKICAgICAgICAgICAgcmVxdWVzdC4gSXQgbWF5IGJlIGEgZmxvYXQgKGluIHNlY29uZHMpIG9yIGFuIGluc3RhbmNlIG9mCiAgICAgICAgICAgIDpjbGFzczpgdXJsbGliMy51dGlsLlRpbWVvdXRgLgoKICAgICAgICA6cGFyYW0gcG9vbF90aW1lb3V0OgogICAgICAgICAgICBJZiBzZXQgYW5kIHRoZSBwb29sIGlzIHNldCB0byBibG9jaz1UcnVlLCB0aGVuIHRoaXMgbWV0aG9kIHdpbGwKICAgICAgICAgICAgYmxvY2sgZm9yIGBgcG9vbF90aW1lb3V0YGAgc2Vjb25kcyBhbmQgcmFpc2UgRW1wdHlQb29sRXJyb3IgaWYgbm8KICAgICAgICAgICAgY29ubmVjdGlvbiBpcyBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lIHBlcmlvZC4KCiAgICAgICAgOnBhcmFtIHJlbGVhc2VfY29ubjoKICAgICAgICAgICAgSWYgRmFsc2UsIHRoZW4gdGhlIHVybG9wZW4gY2FsbCB3aWxsIG5vdCByZWxlYXNlIHRoZSBjb25uZWN0aW9uCiAgICAgICAgICAgIGJhY2sgaW50byB0aGUgcG9vbCBvbmNlIGEgcmVzcG9uc2UgaXMgcmVjZWl2ZWQgKGJ1dCB3aWxsIHJlbGVhc2UgaWYKICAgICAgICAgICAgeW91IHJlYWQgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgcmVzcG9uc2Ugc3VjaCBhcyB3aGVuCiAgICAgICAgICAgIGBwcmVsb2FkX2NvbnRlbnQ9VHJ1ZWApLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UncmUgbm90IHByZWxvYWRpbmcKICAgICAgICAgICAgdGhlIHJlc3BvbnNlJ3MgY29udGVudCBpbW1lZGlhdGVseS4gWW91IHdpbGwgbmVlZCB0byBjYWxsCiAgICAgICAgICAgIGBgci5yZWxlYXNlX2Nvbm4oKWBgIG9uIHRoZSByZXNwb25zZSBgYHJgYCB0byByZXR1cm4gdGhlIGNvbm5lY3Rpb24KICAgICAgICAgICAgYmFjayBpbnRvIHRoZSBwb29sLiBJZiBOb25lLCBpdCB0YWtlcyB0aGUgdmFsdWUgb2YKICAgICAgICAgICAgYGByZXNwb25zZV9rdy5nZXQoJ3ByZWxvYWRfY29udGVudCcsIFRydWUpYGAuCgogICAgICAgIDpwYXJhbSBjaHVua2VkOgogICAgICAgICAgICBJZiBUcnVlLCB1cmxsaWIzIHdpbGwgc2VuZCB0aGUgYm9keSB1c2luZyBjaHVua2VkIHRyYW5zZmVyCiAgICAgICAgICAgIGVuY29kaW5nLiBPdGhlcndpc2UsIHVybGxpYjMgd2lsbCBzZW5kIHRoZSBib2R5IHVzaW5nIHRoZSBzdGFuZGFyZAogICAgICAgICAgICBjb250ZW50LWxlbmd0aCBmb3JtLiBEZWZhdWx0cyB0byBGYWxzZS4KCiAgICAgICAgOnBhcmFtIGludCBib2R5X3BvczoKICAgICAgICAgICAgUG9zaXRpb24gdG8gc2VlayB0byBpbiBmaWxlLWxpa2UgYm9keSBpbiB0aGUgZXZlbnQgb2YgYSByZXRyeSBvcgogICAgICAgICAgICByZWRpcmVjdC4gVHlwaWNhbGx5IHRoaXMgd29uJ3QgbmVlZCB0byBiZSBzZXQgYmVjYXVzZSB1cmxsaWIzIHdpbGwKICAgICAgICAgICAgYXV0by1wb3B1bGF0ZSB0aGUgdmFsdWUgd2hlbiBuZWVkZWQuCgogICAgICAgIDpwYXJhbSBcKipyZXNwb25zZV9rdzoKICAgICAgICAgICAgQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGFyZSBwYXNzZWQgdG8KICAgICAgICAgICAgOm1ldGg6YHVybGxpYjMucmVzcG9uc2UuSFRUUFJlc3BvbnNlLmZyb21faHR0cGxpYmAKICAgICAgICBOKQLaCHJlZGlyZWN02gdkZWZhdWx02g9wcmVsb2FkX2NvbnRlbnRUcqgAAABGcgQAAAByhAAAACkEcgUAAADaBGJvZHlyXAAAAHKeAAAA2g5yZXF1ZXN0X21ldGhvZCkDclIAAADaCmNvbm5lY3Rpb25yUQAAAGMBAAAAAAAAAAAAAAACAAAABwAAAFMAAABzKgAAAGQBoAB0AaACZAJ0A3wAgwGgBKEAoQKhAX0BZAN8AXYAcChkBHwBdgBTACkFTvoBIHoGW15hLXpdehR3cm9uZyB2ZXJzaW9uIG51bWJlcnoQdW5rbm93biBwcm90b2NvbCkF2gRqb2lu2gJyZdoFc3BsaXRyfwAAAHIxAAAAKQJaCXNzbF9lcnJvctoHbWVzc2FnZXI1AAAAcjUAAAByNgAAANolX2lzX3NzbF9lcnJvcl9tZXNzYWdlX2Zyb21faHR0cF9wcm94efECAABzBgAAAAAEGgIO/3pJSFRUUENvbm5lY3Rpb25Qb29sLnVybG9wZW4uPGxvY2Fscz4uX2lzX3NzbF9lcnJvcl9tZXNzYWdlX2Zyb21faHR0cF9wcm94edoFaHR0cHN6uVlvdXIgcHJveHkgYXBwZWFycyB0byBvbmx5IHVzZSBIVFRQIGFuZCBub3QgSFRUUFMsIHRyeSBjaGFuZ2luZyB5b3VyIHByb3h5IFVSTCB0byBiZSBIVFRQLiBTZWU6IGh0dHBzOi8vdXJsbGliMy5yZWFkdGhlZG9jcy5pby9lbi8xLjI2LngvYWR2YW5jZWQtdXNhZ2UuaHRtbCNodHRwcy1wcm94eS1lcnJvci1odHRwLXByb3h5ehhDYW5ub3QgY29ubmVjdCB0byBwcm94eS56E0Nvbm5lY3Rpb24gYWJvcnRlZC7pAgAAACkDcgMAAADaBV9wb29s2gtfc3RhY2t0cmFjZXoxUmV0cnlpbmcgKCVyKSBhZnRlciBjb25uZWN0aW9uIGJyb2tlbiBieSAnJXInOiAlcykFcgUAAADaDHBvb2xfdGltZW91dNoMcmVsZWFzZV9jb25ucp4AAADaCGJvZHlfcG9zaS8BAADaA0dFVCkC2ghyZXNwb25zZXK5AAAAehRSZWRpcmVjdGluZyAlcyAtPiAlcykIclEAAAByqwAAANoQYXNzZXJ0X3NhbWVfaG9zdHIFAAAAcrsAAAByvAAAAHKeAAAAcr0AAAB6C1JldHJ5LUFmdGVyeglSZXRyeTogJXMpPXIsAAAAci8AAAByXAAAAHJOAAAAciUAAADaCGZyb21faW50clEAAAByagAAAHKqAAAAchIAAAByqQAAAHIcAAAA2gplbnN1cmVfc3RycikAAABygQAAAHIhAAAAcksAAAByTAAAANoEY29wedoGdXBkYXRlclQAAAByIwAAAHJ5AAAAcm4AAAByZQAAAHIFAAAAcm0AAABydgAAAHKlAAAA2gtSZXNwb25zZUNsc9oMZnJvbV9odHRwbGlichAAAAByGwAAAHILAAAAcpgAAAByFwAAAHIHAAAAchoAAAByJgAAAHIYAAAAchYAAADaCWluY3JlbWVudNoDc3lzcocAAADaBXNsZWVwcj4AAABycwAAAHJiAAAAcnEAAADaB3VybG9wZW7aFWdldF9yZWRpcmVjdF9sb2NhdGlv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